1 /* 2 * Copyright 2013 The Kuali Foundation Licensed under the 3 * Educational Community License, Version 2.0 (the "License"); you may 4 * not use this file except in compliance with the License. You may 5 * obtain a copy of the License at 6 * 7 * http://www.osedu.org/licenses/ECL-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, 10 * software distributed under the License is distributed on an "AS IS" 11 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 package org.kuali.student.core.person.service; 16 17 import org.kuali.rice.core.api.criteria.QueryByCriteria; 18 import org.kuali.student.core.person.dto.PersonAffiliationInfo; 19 import org.kuali.student.core.person.dto.PersonBioDemographicsInfo; 20 import org.kuali.student.core.person.dto.PersonIdentifierInfo; 21 import org.kuali.student.core.person.dto.PersonInfo; 22 import org.kuali.student.core.person.dto.PersonNameInfo; 23 import org.kuali.student.r2.common.dto.ContextInfo; 24 import org.kuali.student.r2.common.dto.StatusInfo; 25 import org.kuali.student.r2.common.dto.ValidationResultInfo; 26 import org.kuali.student.r2.common.exceptions.DataValidationErrorException; 27 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 28 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 29 import org.kuali.student.r2.common.exceptions.MissingParameterException; 30 import org.kuali.student.r2.common.exceptions.OperationFailedException; 31 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 32 import org.kuali.student.r2.common.exceptions.ReadOnlyException; 33 import org.kuali.student.r2.common.exceptions.VersionMismatchException; 34 35 import javax.jws.WebParam; 36 import javax.jws.WebService; 37 import javax.jws.soap.SOAPBinding; 38 import java.util.List; 39 40 /** 41 * Person Service provides access to people. 42 */ 43 @WebService(name = "PersonService", targetNamespace = PersonServiceNamespace.NAMESPACE) 44 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 45 public interface PersonService { 46 47 /** 48 * Retrieves a Person by a Person ID 49 * 50 * @param personId the Person ID 51 * @param contextInfo Context information containing the principalId and locale information about the caller of service 52 * operation 53 * @return the Person 54 * @throws DoesNotExistException personId not found 55 * @throws InvalidParameterException invalid personId or contextInfo 56 * @throws MissingParameterException personId or contextInfo is missing or null 57 * @throws OperationFailedException unable to complete request 58 * @throws PermissionDeniedException an authorization failure occurred 59 */ 60 public PersonInfo getPerson(@WebParam(name = "personId") String personId, 61 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 62 InvalidParameterException, 63 MissingParameterException, 64 OperationFailedException, 65 PermissionDeniedException; 66 67 /** 68 * Retrieves a list of persons by a list of Person IDs 69 * 70 * @param personIds a list of Person IDs 71 * @param contextInfo Context information containing the principalId and locale information about the caller of service 72 * operation 73 * @return a List of People 74 * @throws DoesNotExistException personId not found 75 * @throws InvalidParameterException invalid personId or contextInfo 76 * @throws MissingParameterException personId or contextInfo is missing or null 77 * @throws OperationFailedException unable to complete request 78 * @throws PermissionDeniedException an authorization failure occurred 79 */ 80 public List<PersonInfo> getPersonsByIds(@WebParam(name = "personIds") List<String> personIds, 81 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 82 InvalidParameterException, 83 MissingParameterException, 84 OperationFailedException, 85 PermissionDeniedException; 86 87 /** 88 * Retrieves a list of Person Ids by person type. 89 * 90 * @param personTypeKey the personTypeKey to search by 91 * @param contextInfo Context information containing the principalId and locale information about the caller of service 92 * operation 93 * @return a List of Person IDs 94 * @throws DoesNotExistException personId not found 95 * @throws InvalidParameterException invalid personId or contextInfo 96 * @throws MissingParameterException personId or contextInfo is missing or null 97 * @throws OperationFailedException unable to complete request 98 * @throws PermissionDeniedException an authorization failure occurred 99 */ 100 public List<String> getPersonIdsByType(@WebParam(name = "personTypeKey") String personTypeKey, 101 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 102 InvalidParameterException, 103 MissingParameterException, 104 OperationFailedException, 105 PermissionDeniedException; 106 107 /** 108 * Searches for Person Ids based on the criteria and returns a list of Person identifiers which match the search criteria. 109 * 110 * @param criteria the search criteria 111 * @param contextInfo Context information containing the principalId and locale information about the caller of service 112 * operation 113 * @return a List of Person IDs 114 * @throws InvalidParameterException invalid criteria or contextInfo 115 * @throws MissingParameterException personId or contextInfo is missing or null 116 * @throws OperationFailedException unable to complete request 117 * @throws PermissionDeniedException an authorization failure occurred 118 */ 119 public List<String> searchForPersonIds(@WebParam(name = "criteria") QueryByCriteria criteria, 120 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 121 InvalidParameterException, 122 MissingParameterException, 123 OperationFailedException, 124 PermissionDeniedException; 125 126 /** 127 * Searches for persons based on the criteria and returns a list of persons which match the search criteria. 128 * 129 * @param criteria the search criteria 130 * @param contextInfo Context information containing the principalId and locale information about the caller of service 131 * operation 132 * @return a List of People 133 * @throws InvalidParameterException invalid personId or contextInfo 134 * @throws MissingParameterException personId or contextInfo is missing or null 135 * @throws OperationFailedException unable to complete request 136 * @throws PermissionDeniedException an authorization failure occurred 137 */ 138 public List<PersonInfo> searchForPersons(@WebParam(name = "criteria") QueryByCriteria criteria, 139 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 140 InvalidParameterException, 141 MissingParameterException, 142 OperationFailedException, 143 PermissionDeniedException; 144 145 /** 146 * Validates a Person. If an identifier is present for the Person and a record is found for that identifier, the validation 147 * checks if the Person can be updated to the new values. If an identifier is not present or a record does not exist, the 148 * validation checks if the person with the given data can be created. 149 * 150 * @param validationTypeKey the identifier for the validation Type 151 * @param personTypeKey the identifier for the person type key to be validated 152 * @param personInfo the person to be validated 153 * @param contextInfo Context information containing the principalId and locale information about the caller of service 154 * operation 155 * @return a list of validation results or an empty list if validation succeeded 156 * @throws DoesNotExistException validationTypeKey or personTypeKey is not found 157 * @throws InvalidParameterException personInfo or contextInfo is not valid 158 * @throws MissingParameterException validationTypeKey, personTypeKey, personInfo, or contextInfo is missing or null 159 * @throws OperationFailedException unable to complete request 160 * @throws PermissionDeniedException an authorization failure occurred 161 */ 162 public List<ValidationResultInfo> validatePerson(@WebParam(name = "validationTypeKey") String validationTypeKey, 163 @WebParam(name = "personTypeKey") String personTypeKey, 164 @WebParam(name = "personInfo") PersonInfo personInfo, 165 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 166 DoesNotExistException, 167 InvalidParameterException, 168 MissingParameterException, 169 OperationFailedException, 170 PermissionDeniedException; 171 172 /** 173 * Creates a new Person. The Person Id, Type, and Meta information may not be set in the supplied data. 174 * 175 * @param personTypeKey the identifier for the person type to be validated 176 * @param personInfo the person to be validated 177 * @param contextInfo Context information containing the principalId and locale information about the caller of service 178 * operation 179 * @return the new Person 180 * @throws DataValidationErrorException supplied data is invalid 181 * @throws DoesNotExistException personTypeKey does not exist or is not supported 182 * @throws InvalidParameterException personInfo or contextInfo is not valid 183 * @throws MissingParameterException personTypeKey, personInfo, or contextInfo is missing or null 184 * @throws OperationFailedException unable to complete request 185 * @throws PermissionDeniedException an authorization failure occurred 186 * @throws ReadOnlyException an attempt at supplying information designated as read only 187 */ 188 public PersonInfo createPerson(@WebParam(name = "personTypeKey") String personTypeKey, 189 PersonInfo personInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 190 DataValidationErrorException, 191 DoesNotExistException, 192 InvalidParameterException, 193 MissingParameterException, 194 OperationFailedException, 195 PermissionDeniedException, 196 ReadOnlyException; 197 198 /** 199 * Updates an existing Person. The Person Id, Type, and Meta information may not be changed. 200 * 201 * @param personId the identifier for the Person to be updated 202 * @param personInfo the person to be validated 203 * @param contextInfo Context information containing the principalId and locale information about the caller of service 204 * operation 205 * @return the updated Person 206 * @throws DataValidationErrorException supplied data is invalid 207 * @throws DoesNotExistException personId is not found 208 * @throws InvalidParameterException personId, personInfo or contextInfo is not valid 209 * @throws MissingParameterException personId, personInfo, or contextInfo is missing or null 210 * @throws OperationFailedException unable to complete request 211 * @throws PermissionDeniedException an authorization failure occurred 212 * @throws ReadOnlyException an attempt at supplying information designated as read only 213 * @throws VersionMismatchException if someone else has updated this person record since you fetched the version you are 214 * updating. 215 */ 216 public PersonInfo updatePerson(@WebParam(name = "personId") String personId, 217 @WebParam(name = "personInfo") PersonInfo personInfo, 218 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 219 DataValidationErrorException, 220 DoesNotExistException, 221 InvalidParameterException, 222 MissingParameterException, 223 OperationFailedException, 224 PermissionDeniedException, 225 ReadOnlyException, 226 VersionMismatchException; 227 228 /** 229 * Deletes an existing Person and all it's related parts 230 * 231 * @param personId the identifier for the person to be deleted 232 * @param contextInfo Context information containing the principalId and locale information about the caller of service 233 * operation 234 * @return the status of the delete operation. This must always be true. 235 * @throws DoesNotExistException personInfo is not found 236 * @throws InvalidParameterException personInfo or contextInfo is not valid 237 * @throws MissingParameterException personInfo or contextInfo is missing or null 238 * @throws OperationFailedException unable to complete request 239 * @throws PermissionDeniedException an authorization failure occurred 240 */ 241 public StatusInfo deletePerson(@WebParam(name = "personId") String personId, 242 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 243 DoesNotExistException, 244 InvalidParameterException, 245 MissingParameterException, 246 OperationFailedException, 247 PermissionDeniedException; 248 249 //// 250 //// person name methods 251 //// 252 /** 253 * Retrieves a Person Name by a Person Name ID 254 * 255 * @param personNameId the Person Name ID 256 * @param contextInfo Context information containing the principalId and locale information about the caller of service 257 * operation 258 * @return the PersonName 259 * @throws DoesNotExistException personId not found 260 * @throws InvalidParameterException invalid personId or contextInfo 261 * @throws MissingParameterException personId or contextInfo is missing or null 262 * @throws OperationFailedException unable to complete request 263 * @throws PermissionDeniedException an authorization failure occurred 264 */ 265 public PersonNameInfo getPersonName(@WebParam(name = "personNameId") String personNameId, 266 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 267 InvalidParameterException, 268 MissingParameterException, 269 OperationFailedException, 270 PermissionDeniedException; 271 272 /** 273 * Retrieves a list of person names by a list of Person Name IDs 274 * 275 * @param personNameIds a list of PersonName IDs 276 * @param contextInfo Context information containing the principalId and locale information about the caller of service 277 * operation 278 * @return a List of PersonNames 279 * @throws DoesNotExistException personNameId not found 280 * @throws InvalidParameterException invalid personNameId or contextInfo 281 * @throws MissingParameterException personNameId or contextInfo is missing or null 282 * @throws OperationFailedException unable to complete request 283 * @throws PermissionDeniedException an authorization failure occurred 284 */ 285 public List<PersonNameInfo> getPersonNamesByIds(@WebParam(name = "personNameIds") List<String> personNameIds, 286 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 287 InvalidParameterException, 288 MissingParameterException, 289 OperationFailedException, 290 PermissionDeniedException; 291 292 /** 293 * Retrieves a list of Person Name Ids by person type. 294 * 295 * @param personNameTypeKey the person name Type Key to search by 296 * @param contextInfo Context information containing the principalId and locale information about the caller of service 297 * operation 298 * @return a List of PersonName IDs 299 * @throws DoesNotExistException personNameId not found 300 * @throws InvalidParameterException invalid personNameId or contextInfo 301 * @throws MissingParameterException personNameId or contextInfo is missing or null 302 * @throws OperationFailedException unable to complete request 303 * @throws PermissionDeniedException an authorization failure occurred 304 */ 305 public List<String> getPersonNameIdsByType(@WebParam(name = "personNameTypeKey") String personNameTypeKey, 306 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 307 InvalidParameterException, 308 MissingParameterException, 309 OperationFailedException, 310 PermissionDeniedException; 311 312 /** 313 * Searches for Person Name Ids based on the criteria and returns a list of Person Name identifiers which match the search 314 * criteria. 315 * 316 * @param criteria the search criteria 317 * @param contextInfo Context information containing the principalId and locale information about the caller of service 318 * operation 319 * @return a List of PersonName IDs 320 * @throws InvalidParameterException invalid criteria or contextInfo 321 * @throws MissingParameterException criteria or contextInfo is missing or null 322 * @throws OperationFailedException unable to complete request 323 * @throws PermissionDeniedException an authorization failure occurred 324 */ 325 public List<String> searchForPersonNameIds(@WebParam(name = "criteria") QueryByCriteria criteria, 326 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 327 InvalidParameterException, 328 MissingParameterException, 329 OperationFailedException, 330 PermissionDeniedException; 331 332 /** 333 * Searches for person names based on the criteria and returns a list of persons which match the search criteria. 334 * 335 * @param criteria the search criteria 336 * @param contextInfo Context information containing the principalId and locale information about the caller of service 337 * operation 338 * @return a List of PersonNames 339 * @throws InvalidParameterException invalid criteria or contextInfo 340 * @throws MissingParameterException criteria or contextInfo is missing or null 341 * @throws OperationFailedException unable to complete request 342 * @throws PermissionDeniedException an authorization failure occurred 343 */ 344 public List<PersonNameInfo> searchForPersonNames(@WebParam(name = "criteria") QueryByCriteria criteria, 345 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 346 InvalidParameterException, 347 MissingParameterException, 348 OperationFailedException, 349 PermissionDeniedException; 350 351 /** 352 * Validates a Person Name. If an identifier is present for the PersonName and a record is found for that identifier, the 353 * validation checks if the PersonName can be updated to the new values. If an identifier is not present or a record does not 354 * exist, the validation checks if the person with the given data can be created. 355 * 356 * @param validationTypeKey the identifier for the validation Type 357 * @param personNameTypeKey the identifier for the person name type to be validated 358 * @param personId id of person for whom this name is being applied 359 * @param personNameInfo the person to be validated 360 * @param contextInfo Context information containing the principalId and locale information about the caller of service 361 * operation 362 * @return a list of validation results or an empty list if validation succeeded 363 * @throws DoesNotExistException validationTypeKey or personNameTypeKey is not found 364 * @throws InvalidParameterException personNameInfo or contextInfo is not valid 365 * @throws MissingParameterException validationTypeKey, personNameTypeKey, personNameInfo, or contextInfo is missing or null 366 * @throws OperationFailedException unable to complete request 367 * @throws PermissionDeniedException an authorization failure occurred 368 */ 369 public List<ValidationResultInfo> validatePersonName(@WebParam(name = "validationTypeKey") String validationTypeKey, 370 @WebParam(name = "personNameTyhpeKey") String personNameTypeKey, 371 @WebParam(name = "personId") String personId, 372 @WebParam(name = "personInfo") PersonNameInfo personNameInfo, 373 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 374 DoesNotExistException, 375 InvalidParameterException, 376 MissingParameterException, 377 OperationFailedException, 378 PermissionDeniedException; 379 380 /** 381 * Creates a new Person Name. The PersonName Id, Type, and Meta information may not be set in the supplied data. 382 * 383 * @param personNameTypeKey the identifier for the person name Type to assign to this name object 384 * @param personId id of the person to whom this name is attached 385 * @param personNameInfo the person to be validated 386 * @param contextInfo Context information containing the principalId and locale information about the caller of service 387 * operation 388 * @return the new PersonName 389 * @throws DataValidationErrorException supplied data is invalid 390 * @throws DoesNotExistException personNameType does not exist or is not supported 391 * @throws InvalidParameterException personNameInfo or contextInfo is not valid 392 * @throws MissingParameterException personNameType, personNameInfo, or contextInfo is missing or null 393 * @throws OperationFailedException unable to complete request 394 * @throws PermissionDeniedException an authorization failure occurred 395 * @throws ReadOnlyException an attempt at supplying information designated as read only 396 */ 397 public PersonNameInfo createPersonName(@WebParam(name = "personNameTypeKey") String personNameTypeKey, 398 @WebParam(name = "personId") String personId, 399 @WebParam(name = "personNameInfo") PersonNameInfo personNameInfo, 400 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 401 DataValidationErrorException, 402 DoesNotExistException, 403 InvalidParameterException, 404 MissingParameterException, 405 OperationFailedException, 406 PermissionDeniedException, 407 ReadOnlyException; 408 409 /** 410 * Updates an existing Person Name. The PersonName Id, Type, and Meta information may not be changed. 411 * 412 * @param personNameId the identifier for the PersonName to be updated 413 * @param personNameInfo the person to be validated 414 * @param contextInfo Context information containing the principalId and locale information about the caller of service 415 * operation 416 * @return the updated PersonName 417 * @throws DataValidationErrorException supplied data is invalid 418 * @throws DoesNotExistException personNameId is not found 419 * @throws InvalidParameterException personNameId, personNanmeInfo or contextInfo is not valid 420 * @throws MissingParameterException personNameId, personNameInfo, or contextInfo is missing or null 421 * @throws OperationFailedException unable to complete request 422 * @throws PermissionDeniedException an authorization failure occurred 423 * @throws ReadOnlyException an attempt at supplying information designated as read only 424 * @throws VersionMismatchException if someone else has updated this person record since you fetched the version you are 425 * updating. 426 */ 427 public PersonNameInfo updatePersonName(@WebParam(name = "personNamed") String personNameId, 428 @WebParam(name = "personNameInfo") PersonNameInfo personNameInfo, 429 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 430 DataValidationErrorException, 431 DoesNotExistException, 432 InvalidParameterException, 433 MissingParameterException, 434 OperationFailedException, 435 PermissionDeniedException, 436 ReadOnlyException, 437 VersionMismatchException; 438 439 /** 440 * Deletes an existing Person Name. 441 * 442 * @param personNameId the identifier for the person name record to be deleted 443 * @param contextInfo Context information containing the principalId and locale information about the caller of service 444 * operation 445 * @return the status of the delete operation. This must always be true. 446 * @throws DoesNotExistException personNameInfo is not found 447 * @throws InvalidParameterException personNameInfo or contextInfo is not valid 448 * @throws MissingParameterException personNameInfo or contextInfo is missing or null 449 * @throws OperationFailedException unable to complete request 450 * @throws PermissionDeniedException an authorization failure occurred 451 */ 452 public StatusInfo deletePersonName(@WebParam(name = "personNameId") String personNameId, 453 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 454 DoesNotExistException, 455 InvalidParameterException, 456 MissingParameterException, 457 OperationFailedException, 458 PermissionDeniedException; 459 460 /** 461 * Get names for a person 462 * 463 * @param personId the identifier for the person 464 * @param contextInfo Context information containing the principalId and locale information about the caller of service 465 * operation 466 * @return list of names for that person 467 * @throws InvalidParameterException personId or contextInfo is not valid 468 * @throws MissingParameterException personId or contextInfo is missing or null 469 * @throws OperationFailedException unable to complete request 470 * @throws PermissionDeniedException an authorization failure occurred 471 */ 472 public List<PersonNameInfo> getPersonNamesByPerson(@WebParam(name = "personId") String personId, 473 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 474 InvalidParameterException, 475 MissingParameterException, 476 OperationFailedException, 477 PermissionDeniedException; 478 479 //// 480 //// person identifiers 481 //// 482 /** 483 * Retrieves a Person Identifier by a Person Identifier ID 484 * 485 * @param personIdentifierId the Person Identifier ID 486 * @param contextInfo Context information containing the principalId and locale information about the caller of service 487 * operation 488 * @return the PersonIdentifier 489 * @throws DoesNotExistException personIdentifierId not found 490 * @throws InvalidParameterException invalid personIdentifierId or contextInfo 491 * @throws MissingParameterException personIdentifierId or contextInfo is missing or null 492 * @throws OperationFailedException unable to complete request 493 * @throws PermissionDeniedException an authorization failure occurred 494 */ 495 public PersonIdentifierInfo getPersonIdentifier(@WebParam(name = "personIdentifierId") String personIdentifierId, 496 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 497 InvalidParameterException, 498 MissingParameterException, 499 OperationFailedException, 500 PermissionDeniedException; 501 502 /** 503 * Retrieves a list of person identifiers by a list of Person Identifier IDs 504 * 505 * @param personIdentifierIds a list of Person Identifier IDs 506 * @param contextInfo Context information containing the principalId and locale information about the caller of service 507 * operation 508 * @return a List of Person Identifiers 509 * @throws DoesNotExistException personIdentifierId not found 510 * @throws InvalidParameterException invalid personIdentifierId or contextInfo 511 * @throws MissingParameterException personIdentifierId or contextInfo is missing or null 512 * @throws OperationFailedException unable to complete request 513 * @throws PermissionDeniedException an authorization failure occurred 514 */ 515 public List<PersonIdentifierInfo> getPersonIdentifiersByIds( 516 @WebParam(name = "personIdentifierIds") List<String> personIdentifierIds, 517 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 518 InvalidParameterException, 519 MissingParameterException, 520 OperationFailedException, 521 PermissionDeniedException; 522 523 /** 524 * Retrieves a list of Person Identifier Ids by person type. 525 * 526 * @param personIdentifierTypeKey the personIdentifier Type Key to search by 527 * @param contextInfo Context information containing the principalId and locale information about the caller of service 528 * operation 529 * @return a List of PersonIdentifier IDs 530 * @throws DoesNotExistException personIdentifierTypeKey not found 531 * @throws InvalidParameterException invalid personIdentifierTypeKey or contextInfo 532 * @throws MissingParameterException personIdentifierTypeKey or contextInfo is missing or null 533 * @throws OperationFailedException unable to complete request 534 * @throws PermissionDeniedException an authorization failure occurred 535 */ 536 public List<String> getPersonIdentifierIdsByType(@WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 537 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 538 InvalidParameterException, 539 MissingParameterException, 540 OperationFailedException, 541 PermissionDeniedException; 542 543 /** 544 * Searches for Person Identifier Ids based on the criteria and returns a list of Person Identifier identifiers which match 545 * the search criteria. 546 * 547 * @param criteria the search criteria 548 * @param contextInfo Context information containing the principalId and locale information about the caller of service 549 * operation 550 * @return a List of PersonIdentifier IDs 551 * @throws InvalidParameterException invalid criteria or contextInfo 552 * @throws MissingParameterException criteria or contextInfo is missing or null 553 * @throws OperationFailedException unable to complete request 554 * @throws PermissionDeniedException an authorization failure occurred 555 */ 556 public List<String> searchForPersonIdentifierIds(@WebParam(name = "criteria") QueryByCriteria criteria, 557 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 558 InvalidParameterException, 559 MissingParameterException, 560 OperationFailedException, 561 PermissionDeniedException; 562 563 /** 564 * Searches for person identifiers based on the criteria and returns a list of persons which match the search criteria. 565 * 566 * @param criteria the search criteria 567 * @param contextInfo Context information containing the principalId and locale information about the caller of service 568 * operation 569 * @return a List of Person Identifiers 570 * @throws InvalidParameterException invalid criteria or contextInfo 571 * @throws MissingParameterException criteria or contextInfo is missing or null 572 * @throws OperationFailedException unable to complete request 573 * @throws PermissionDeniedException an authorization failure occurred 574 */ 575 public List<PersonIdentifierInfo> searchForPersonIdentifiers(@WebParam(name = "criteria") QueryByCriteria criteria, 576 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 577 InvalidParameterException, 578 MissingParameterException, 579 OperationFailedException, 580 PermissionDeniedException; 581 582 /** 583 * Validates a PersonIdentifier. If an identifier is present for the Person Identifier and a record is found for that 584 * identifier, the validation checks if the PersonIdentifier can be updated to the new values. If an identifier is not present 585 * or a record does not exist, the validation checks if the person with the given data can be created. 586 * 587 * @param validationTypeKey the identifier for the validation Type 588 * @param personIdentifierTypeKey the identifier for the person identifier type to be validated 589 * @param personId id of person for whom this identifier is being applied 590 * @param personIdentifierInfo the person to be validated 591 * @param contextInfo Context information containing the principalId and locale information about the caller of service 592 * operation 593 * @return a list of validation results or an empty list if validation succeeded 594 * @throws DoesNotExistException validationTypeKey or personIdentifierTypeKey is not found 595 * @throws InvalidParameterException personIdentifierInfo or contextInfo is not valid 596 * @throws MissingParameterException validationTypeKey, personIdentifierTypeKey, personIdentifierInfo, or contextInfo is 597 * missing or null 598 * @throws OperationFailedException unable to complete request 599 * @throws PermissionDeniedException an authorization failure occurred 600 */ 601 public List<ValidationResultInfo> validatePersonIdentifier(@WebParam(name = "validationTypeKey") String validationTypeKey, 602 @WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 603 @WebParam(name = "personId") String personId, 604 @WebParam(name = "personIdentifierInfo") PersonIdentifierInfo personIdentifierInfo, 605 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 606 DoesNotExistException, 607 InvalidParameterException, 608 MissingParameterException, 609 OperationFailedException, 610 PermissionDeniedException; 611 612 /** 613 * Creates a new Person Identifier. The Person Identifier Id, Type, and Meta information may not be set in the supplied data. 614 * 615 * @param personIdentifierTypeKey the identifier for the person identifier Type to assign to this identifier object 616 * @param personId id of the person to whom this identifier is attached 617 * @param personIdentifierInfo the person to be validated 618 * @param contextInfo Context information containing the principalId and locale information about the caller of service 619 * operation 620 * @return the new PersonIdentifier 621 * @throws DataValidationErrorException supplied data is invalid 622 * @throws DoesNotExistException personIdentifierType does not exist or is not supported 623 * @throws InvalidParameterException personInfo or contextInfo is not valid 624 * @throws MissingParameterException personIdentifierType, personIdentifierInfo, or contextInfo is missing or null 625 * @throws OperationFailedException unable to complete request 626 * @throws PermissionDeniedException an authorization failure occurred 627 * @throws ReadOnlyException an attempt at supplying information designated as read only 628 */ 629 public PersonIdentifierInfo createPersonIdentifier(@WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 630 @WebParam(name = "personId") String personId, 631 @WebParam(name = "personIdentifierInfo") PersonIdentifierInfo personIdentifierInfo, 632 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 633 DataValidationErrorException, 634 DoesNotExistException, 635 InvalidParameterException, 636 MissingParameterException, 637 OperationFailedException, 638 PermissionDeniedException, 639 ReadOnlyException; 640 641 /** 642 * Updates an existing Person Identifier. The Person Identifier Id, Type, and Meta information may not be changed. 643 * 644 * @param personIdentifierId the identifier for the PersonIdentifier to be updated 645 * @param personIdentifierInfo the person to be validated 646 * @param contextInfo Context information containing the principalId and locale information about the caller of service 647 * operation 648 * @return the updated PersonIdentifier 649 * @throws DataValidationErrorException supplied data is invalid 650 * @throws DoesNotExistException personId is not found 651 * @throws InvalidParameterException personId, personIdentifierInfo or contextInfo is not valid 652 * @throws MissingParameterException personId, personIdentifierInfo, or contextInfo is missing or null 653 * @throws OperationFailedException unable to complete request 654 * @throws PermissionDeniedException an authorization failure occurred 655 * @throws ReadOnlyException an attempt at supplying information designated as read only 656 * @throws VersionMismatchException if someone else has updated this person record since you fetched the version you are 657 * updating. 658 */ 659 public PersonIdentifierInfo updatePersonIdentifier(@WebParam(name = "personIdentifierId") String personIdentifierId, 660 @WebParam(name = "personIdentifierInfo") PersonIdentifierInfo personIdentifierInfo, 661 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 662 DataValidationErrorException, 663 DoesNotExistException, 664 InvalidParameterException, 665 MissingParameterException, 666 OperationFailedException, 667 PermissionDeniedException, 668 ReadOnlyException, 669 VersionMismatchException; 670 671 /** 672 * Deletes an existing Person Identifier. 673 * 674 * @param personIdentifierId the identifier for the person identifier record to be deleted 675 * @param contextInfo Context information containing the principalId and locale information about the caller of service 676 * operation 677 * @return the status of the delete operation. This must always be true. 678 * @throws DoesNotExistException personIdentifierId is not found 679 * @throws InvalidParameterException personIdentifierId or contextInfo is not valid 680 * @throws MissingParameterException personIdentifierId or contextInfo is missing or null 681 * @throws OperationFailedException unable to complete request 682 * @throws PermissionDeniedException an authorization failure occurred 683 */ 684 public StatusInfo deletePersonIdentifier(@WebParam(name = "personIdentifierId") String personIdentifierId, 685 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 686 DoesNotExistException, 687 InvalidParameterException, 688 MissingParameterException, 689 OperationFailedException, 690 PermissionDeniedException; 691 692 /** 693 * Get person identifiers for a person 694 * 695 * @param personId the identifier for the person 696 * @param contextInfo Context information containing the principalId and locale information about the caller of service 697 * operation 698 * @return list of identifiers for that person 699 * @throws DoesNotExistException personId is not found 700 * @throws InvalidParameterException personId or contextInfo is not valid 701 * @throws MissingParameterException personId or contextInfo is missing or null 702 * @throws OperationFailedException unable to complete request 703 * @throws PermissionDeniedException an authorization failure occurred 704 */ 705 public List<PersonIdentifierInfo> getPersonIdentifiersByPerson(@WebParam(name = "personId") String personId, 706 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 707 DoesNotExistException, 708 InvalidParameterException, 709 MissingParameterException, 710 OperationFailedException, 711 PermissionDeniedException; 712 713 /** 714 * Get PersonIdentifiers by identifier 715 * 716 * Note: Some identifiers may not be unique 717 * 718 * @param identifier the identifier for the person 719 * @param personIdentifierTypeKey the type of the identifier to be searched 720 * @param contextInfo Context information containing the principalId and locale information about the caller of service 721 * operation 722 * @return a list of identifiers matching the specific identifier 723 * @throws InvalidParameterException personIdentifierTypeKey or contextInfo is not valid 724 * @throws MissingParameterException personIdentifierTypeKey or contextInfo is missing or null 725 * @throws OperationFailedException unable to complete request 726 * @throws PermissionDeniedException an authorization failure occurred 727 */ 728 public List<PersonIdentifierInfo> getPersonIdentifiersByIdentifier( 729 @WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 730 @WebParam(name = "identifier") String identifier, 731 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 732 InvalidParameterException, 733 MissingParameterException, 734 OperationFailedException, 735 PermissionDeniedException; 736 737 //// 738 //// person bio demographics 739 //// 740 /** 741 * Retrieves a Person Bio Demographic by a Person Bio Demographic ID 742 * 743 * @param personBioDemographicsId the Person Bio Demographic ID 744 * @param contextInfo Context information containing the principalId and locale information about the caller of service 745 * operation 746 * @return the PersonIdentifier 747 * @throws DoesNotExistException personBioDemographicsId not found 748 * @throws InvalidParameterException invalid personBioDemographicsId or contextInfo 749 * @throws MissingParameterException personBioDemographicsId or contextInfo is missing or null 750 * @throws OperationFailedException unable to complete request 751 * @throws PermissionDeniedException an authorization failure occurred 752 */ 753 public PersonBioDemographicsInfo getPersonBioDemographics( 754 @WebParam(name = "personBioDemographicsId") String personBioDemographicsId, 755 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 756 InvalidParameterException, 757 MissingParameterException, 758 OperationFailedException, 759 PermissionDeniedException; 760 761 /** 762 * Retrieves a list of person identifiers by a list of Person Bio Demographic IDs 763 * 764 * @param personBioDemographicsIds a list of Person Bio Demographic IDs 765 * @param contextInfo Context information containing the principalId and locale information about the caller of service 766 * operation 767 * @return a List of Person Bio Demographics 768 * @throws DoesNotExistException personBioDemographicsId not found 769 * @throws InvalidParameterException invalid personBioDemographicsIds or contextInfo 770 * @throws MissingParameterException personBioDemographicsIds or contextInfo is missing or null 771 * @throws OperationFailedException unable to complete request 772 * @throws PermissionDeniedException an authorization failure occurred 773 */ 774 public List<PersonBioDemographicsInfo> getPersonBioDemographicsByIds( 775 @WebParam(name = "personBioDemographicsIds") List<String> personBioDemographicsIds, 776 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 777 InvalidParameterException, 778 MissingParameterException, 779 OperationFailedException, 780 PermissionDeniedException; 781 782 /** 783 * Retrieves a list of Person Bio Demographic Ids by person type. 784 * 785 * @param personIdentifierTypeKey the personIdentifier Type Key to search by 786 * @param contextInfo Context information containing the principalId and locale information about the caller of service 787 * operation 788 * @return a List of PersonBioDemographics IDs 789 * @throws DoesNotExistException personIdentifierTypeKey not found 790 * @throws InvalidParameterException invalid personIdentifierTypeKey or contextInfo 791 * @throws MissingParameterException personIdentifierTypeKey or contextInfo is missing or null 792 * @throws OperationFailedException unable to complete request 793 * @throws PermissionDeniedException an authorization failure occurred 794 */ 795 public List<String> getPersonBioDemographicsIdsByType( 796 @WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 797 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 798 InvalidParameterException, 799 MissingParameterException, 800 OperationFailedException, 801 PermissionDeniedException; 802 803 /** 804 * Searches for Person Bio Demographic Ids based on the criteria and returns a list of Person Bio Demographic identifiers 805 * which match the search criteria. 806 * 807 * @param criteria the search criteria 808 * @param contextInfo Context information containing the principalId and locale information about the caller of service 809 * operation 810 * @return a List of PersonBioDemographics IDs 811 * @throws InvalidParameterException invalid criteria or contextInfo 812 * @throws MissingParameterException criteria or contextInfo is missing or null 813 * @throws OperationFailedException unable to complete request 814 * @throws PermissionDeniedException an authorization failure occurred 815 */ 816 public List<String> searchForPersonBioDemographicsIds(@WebParam(name = "criteria") QueryByCriteria criteria, 817 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 818 InvalidParameterException, 819 MissingParameterException, 820 OperationFailedException, 821 PermissionDeniedException; 822 823 /** 824 * Searches for person identifiers based on the criteria and returns a list of persons which match the search criteria. 825 * 826 * @param criteria the search criteria 827 * @param contextInfo Context information containing the principalId and locale information about the caller of service 828 * operation 829 * @return a List of Person Bio Demographics 830 * @throws InvalidParameterException invalid criteria or contextInfo 831 * @throws MissingParameterException criteria or contextInfo is missing or null 832 * @throws OperationFailedException unable to complete request 833 * @throws PermissionDeniedException an authorization failure occurred 834 */ 835 public List<PersonBioDemographicsInfo> searchForPersonBioDemographics(@WebParam(name = "criteria") QueryByCriteria criteria, 836 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 837 InvalidParameterException, 838 MissingParameterException, 839 OperationFailedException, 840 PermissionDeniedException; 841 842 /** 843 * Validates a PersonBioDemographics. If an identifier is present for the Person Bio Demographic and a record is found for 844 * that identifier, the validation checks if the PersonBioDemographics can be updated to the new values. If an identifier is 845 * not present or a record does not exist, the validation checks if the person with the given data can be created. 846 * 847 * @param validationTypeKey the identifier for the validation Type 848 * @param personIdentifierTypeKey the identifier for the person identifier type to be validated 849 * @param personId id of person for whom this identifier is being applied 850 * @param personBioDemographicsInfo the person to be validated 851 * @param contextInfo Context information containing the principalId and locale information about the caller of service 852 * operation 853 * @return a list of validation results or an empty list if validation succeeded 854 * @throws InvalidParameterException personBioDemographicsInfo or contextInfo is not valid 855 * @throws MissingParameterException validationTypeKey, personIdentifierTypeKey, personInfo, or contextInfo is missing or null 856 * @throws OperationFailedException unable to complete request 857 * @throws PermissionDeniedException an authorization failure occurred 858 */ 859 public List<ValidationResultInfo> validatePersonBioDemographics(@WebParam(name = "validationTypeKey") String validationTypeKey, 860 @WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 861 @WebParam(name = "personId") String personId, 862 @WebParam(name = "personBioDemographicsInfo") PersonBioDemographicsInfo personBioDemographicsInfo, 863 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 864 InvalidParameterException, 865 MissingParameterException, 866 OperationFailedException, 867 PermissionDeniedException; 868 869 /** 870 * Creates a new Person Bio Demographic. The Person Bio Demographic Id, Type, and Meta information may not be set in the 871 * supplied data. 872 * 873 * @param personIdentifierTypeKey the identifier for the person identifier Type to assign to this identifier object 874 * @param personId id of the person to whom this identifier is attached 875 * @param personBioDemographicsInfo the person to be validated 876 * @param contextInfo Context information containing the principalId and locale information about the caller of service 877 * operation 878 * @return the new PersonBioDemographics 879 * @throws DataValidationErrorException supplied data is invalid 880 * @throws DoesNotExistException personIdentifierType does not exist or is not supported 881 * @throws InvalidParameterException personBioDemographicsInfo or contextInfo is not valid 882 * @throws MissingParameterException personIdentifierType, personBioDemographicsInfo, or contextInfo is missing or null 883 * @throws OperationFailedException unable to complete request 884 * @throws PermissionDeniedException an authorization failure occurred 885 * @throws ReadOnlyException an attempt at supplying information designated as read only 886 */ 887 public PersonBioDemographicsInfo createPersonBioDemographics( 888 @WebParam(name = "personIdentifierTypeKey") String personIdentifierTypeKey, 889 @WebParam(name = "personId") String personId, 890 @WebParam(name = "personBioDemographicsInfo") PersonBioDemographicsInfo personBioDemographicsInfo, 891 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 892 DataValidationErrorException, 893 DoesNotExistException, 894 InvalidParameterException, 895 MissingParameterException, 896 OperationFailedException, 897 PermissionDeniedException, 898 ReadOnlyException; 899 900 /** 901 * Updates an existing Person Bio Demographic. The Person Bio Demographic Id, Type, and Meta information may not be changed. 902 * 903 * @param personBioDemographicsId the identifier for the PersonBioDemographics to be updated 904 * @param personBioDemographicsInfo the person to be validated 905 * @param contextInfo Context information containing the principalId and locale information about the caller of service 906 * operation 907 * @return the updated PersonBioDemographics 908 * @throws DataValidationErrorException supplied data is invalid 909 * @throws DoesNotExistException personBioDemographicsId is not found 910 * @throws InvalidParameterException personBioDemographicsId, personBioDemographicsInfo or contextInfo is not valid 911 * @throws MissingParameterException personBioDemographicsId, personBioDemographicsInfo, or contextInfo is missing or null 912 * @throws OperationFailedException unable to complete request 913 * @throws PermissionDeniedException an authorization failure occurred 914 * @throws ReadOnlyException an attempt at supplying information designated as read only 915 * @throws VersionMismatchException if someone else has updated this person record since you fetched the version you are 916 * updating. 917 */ 918 public PersonBioDemographicsInfo updatePersonBioDemographics( 919 @WebParam(name = "personBioDemographicsId") String personBioDemographicsId, 920 @WebParam(name = "personBioDemographicsInfo") PersonBioDemographicsInfo personBioDemographicsInfo, 921 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 922 DataValidationErrorException, 923 DoesNotExistException, 924 InvalidParameterException, 925 MissingParameterException, 926 OperationFailedException, 927 PermissionDeniedException, 928 ReadOnlyException, 929 VersionMismatchException; 930 931 /** 932 * Deletes an existing Person Bio Demographic. 933 * 934 * @param personBioDemographicsId the identifier for the person identifier record to be deleted 935 * @param contextInfo Context information containing the principalId and locale information about the caller of service 936 * operation 937 * @return the status of the delete operation. This must always be true. 938 * @throws DoesNotExistException personInfo is not found 939 * @throws InvalidParameterException personInfo or contextInfo is not valid 940 * @throws MissingParameterException personInfo or contextInfo is missing or null 941 * @throws OperationFailedException unable to complete request 942 * @throws PermissionDeniedException an authorization failure occurred 943 */ 944 public StatusInfo deletePersonBioDemographics(@WebParam(name = "personBioDemographicsId") String personBioDemographicsId, 945 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 946 DoesNotExistException, 947 InvalidParameterException, 948 MissingParameterException, 949 OperationFailedException, 950 PermissionDeniedException; 951 952 /** 953 * Get person bio demographics for a person 954 * 955 * @param personId the identifier for the person 956 * @param contextInfo Context information containing the principalId and locale information about the caller of service 957 * operation 958 * @return the person's demo graphics 959 * @throws DoesNotExistException personInfo is not found or person has no bio demographics 960 * @throws InvalidParameterException personInfo or contextInfo is not valid 961 * @throws MissingParameterException personInfo or contextInfo is missing or null 962 * @throws OperationFailedException unable to complete request 963 * @throws PermissionDeniedException an authorization failure occurred 964 */ 965 public PersonBioDemographicsInfo getPersonBioDemographicsByPerson(@WebParam(name = "personId") String personId, 966 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 967 DoesNotExistException, 968 InvalidParameterException, 969 MissingParameterException, 970 OperationFailedException, 971 PermissionDeniedException; 972 973 //// 974 //// person affiliations 975 //// 976 /** 977 * Retrieves a Person Affiliation by a Person Affiliation ID 978 * 979 * @param personAffiliationId the Person Affiliation ID 980 * @param contextInfo Context information containing the principalId and locale information about the caller of service 981 * operation 982 * @return the PersonAffiliation 983 * @throws DoesNotExistException personAffiliationId not found 984 * @throws InvalidParameterException invalid personAffiliationId or contextInfo 985 * @throws MissingParameterException personAffiliationId or contextInfo is missing or null 986 * @throws OperationFailedException unable to complete request 987 * @throws PermissionDeniedException an authorization failure occurred 988 */ 989 public PersonAffiliationInfo getPersonAffiliation(@WebParam(name = "personAffiliationId") String personAffiliationId, 990 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 991 InvalidParameterException, 992 MissingParameterException, 993 OperationFailedException, 994 PermissionDeniedException; 995 996 /** 997 * Retrieves a list of person identifiers by a list of Person Affiliation IDs 998 * 999 * @param personAffiliationIds a list of Person Affiliation IDs 1000 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1001 * operation 1002 * @return a List of Person Affiliations 1003 * @throws DoesNotExistException personAffiliationId not found 1004 * @throws InvalidParameterException invalid personAffiliationId or contextInfo 1005 * @throws MissingParameterException personAffiliationId or contextInfo is missing or null 1006 * @throws OperationFailedException unable to complete request 1007 * @throws PermissionDeniedException an authorization failure occurred 1008 */ 1009 public List<PersonAffiliationInfo> getPersonAffiliationsByIds( 1010 @WebParam(name = "personAffiliationIds") List<String> personAffiliationIds, 1011 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 1012 InvalidParameterException, 1013 MissingParameterException, 1014 OperationFailedException, 1015 PermissionDeniedException; 1016 1017 /** 1018 * Retrieves a list of Person Affiliation Ids by person type. 1019 * 1020 * @param personAffiliationTypeKey the personAffiliation Type Key to search by 1021 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1022 * operation 1023 * @return a List of PersonAffiliation IDs 1024 * @throws DoesNotExistException personAffiliationTypeKey not found 1025 * @throws InvalidParameterException invalid personAffiliationTypeKey or contextInfo 1026 * @throws MissingParameterException personAffiliationTypeKey or contextInfo is missing or null 1027 * @throws OperationFailedException unable to complete request 1028 * @throws PermissionDeniedException an authorization failure occurred 1029 */ 1030 public List<String> getPersonAffiliationIdsByType(@WebParam(name = "personAffiliationTypeKey") String personAffiliationTypeKey, 1031 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 1032 InvalidParameterException, 1033 MissingParameterException, 1034 OperationFailedException, 1035 PermissionDeniedException; 1036 1037 /** 1038 * Searches for Person Affiliation Ids based on the criteria and returns a list of Person Affiliations which match the search 1039 * criteria. 1040 * 1041 * @param criteria the search criteria 1042 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1043 * operation 1044 * @return a List of PersonAffiliation IDs 1045 * @throws InvalidParameterException invalid criteria or contextInfo 1046 * @throws MissingParameterException criteria or contextInfo is missing or null 1047 * @throws OperationFailedException unable to complete request 1048 * @throws PermissionDeniedException an authorization failure occurred 1049 */ 1050 public List<String> searchForPersonAffiliationIds(@WebParam(name = "criteria") QueryByCriteria criteria, 1051 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1052 InvalidParameterException, 1053 MissingParameterException, 1054 OperationFailedException, 1055 PermissionDeniedException; 1056 1057 /** 1058 * Searches for person affiliations based on the criteria and returns a list of persons which match the search criteria. 1059 * 1060 * @param criteria the search criteria 1061 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1062 * operation 1063 * @return a List of Person Affiliations 1064 * @throws InvalidParameterException invalid criteria or contextInfo 1065 * @throws MissingParameterException criteria or contextInfo is missing or null 1066 * @throws OperationFailedException unable to complete request 1067 * @throws PermissionDeniedException an authorization failure occurred 1068 */ 1069 public List<PersonAffiliationInfo> searchForPersonAffiliations(@WebParam(name = "criteria") QueryByCriteria criteria, 1070 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1071 InvalidParameterException, 1072 MissingParameterException, 1073 OperationFailedException, 1074 PermissionDeniedException; 1075 1076 /** 1077 * Validates a PersonAffiliation. If an affiliation is present for the Person Affiliation and a record is found for that 1078 * affiliation, the validation checks if the PersonAffiliation can be updated to the new values. If an affiliation is not 1079 * present or a record does not exist, the validation checks if the person with the given data can be created. 1080 * 1081 * @param validationTypeKey the affiliation for the validation Type 1082 * @param personAffiliationTypeKey the affiliation for the person affiliation type to be validated 1083 * @param personId id of person for whom this affiliation is being applied 1084 * @param organizationId id of organizational unit for whom this affiliation is being applied 1085 * @param personAffiliationInfo the person to be validated 1086 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1087 * operation 1088 * @return a list of validation results or an empty list if validation succeeded 1089 * @throws DoesNotExistException validationTypeKey or personAffiliationTypeKey is not found 1090 * @throws InvalidParameterException personAffiliationInfo or contextInfo is not valid 1091 * @throws MissingParameterException validationTypeKey, personAffiliationTypeKey, personAffiliationInfo, or contextInfo is 1092 * missing or null 1093 * @throws OperationFailedException unable to complete request 1094 * @throws PermissionDeniedException an authorization failure occurred 1095 */ 1096 public List<ValidationResultInfo> validatePersonAffiliation(@WebParam(name = "validationTypeKey") String validationTypeKey, 1097 @WebParam(name = "personAffiliationTypeKey") String personAffiliationTypeKey, 1098 @WebParam(name = "personId") String personId, 1099 @WebParam(name = "organizationId") String organizationId, 1100 @WebParam(name = "personAffiliationInfo") PersonAffiliationInfo personAffiliationInfo, 1101 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1102 DoesNotExistException, 1103 InvalidParameterException, 1104 MissingParameterException, 1105 OperationFailedException, 1106 PermissionDeniedException; 1107 1108 /** 1109 * Creates a new Person Affiliation. The Person Affiliation Id, Type, and Meta information may not be set in the supplied 1110 * data. 1111 * 1112 * @param personAffiliationTypeKey the affiliation for the person affiliation Type to assign to this affiliation object 1113 * @param personId id of the person to whom this affiliation is attached 1114 * @param organizationId id of organizational unit for whom this affiliation is being applied 1115 * @param personAffiliationInfo the person to be validated 1116 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1117 * operation 1118 * @return the new PersonAffiliation 1119 * @throws DataValidationErrorException supplied data is invalid 1120 * @throws DoesNotExistException personAffiliationType does not exist or is not supported 1121 * @throws InvalidParameterException personInfo or contextInfo is not valid 1122 * @throws MissingParameterException personAffiliationType, personAffiliationInfo, or contextInfo is missing or null 1123 * @throws OperationFailedException unable to complete request 1124 * @throws PermissionDeniedException an authorization failure occurred 1125 * @throws ReadOnlyException an attempt at supplying information designated as read only 1126 */ 1127 public PersonAffiliationInfo createPersonAffiliation( 1128 @WebParam(name = "personAffiliationTypeKey") String personAffiliationTypeKey, 1129 @WebParam(name = "personId") String personId, 1130 @WebParam(name = "organizationId") String organizationId, 1131 @WebParam(name = "personAffiliationInfo") PersonAffiliationInfo personAffiliationInfo, 1132 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1133 DataValidationErrorException, 1134 DoesNotExistException, 1135 InvalidParameterException, 1136 MissingParameterException, 1137 OperationFailedException, 1138 PermissionDeniedException, 1139 ReadOnlyException; 1140 1141 /** 1142 * Updates an existing Person Affiliation. The Person Affiliation Id, Type, and Meta information may not be changed. 1143 * 1144 * @param personAffiliationId the affiliation for the PersonAffiliation to be updated 1145 * @param personAffiliationInfo the person to be validated 1146 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1147 * operation 1148 * @return the updated PersonAffiliation 1149 * @throws DataValidationErrorException supplied data is invalid 1150 * @throws DoesNotExistException personId is not found 1151 * @throws InvalidParameterException personId, personAffiliationInfo or contextInfo is not valid 1152 * @throws MissingParameterException personId, personAffiliationInfo, or contextInfo is missing or null 1153 * @throws OperationFailedException unable to complete request 1154 * @throws PermissionDeniedException an authorization failure occurred 1155 * @throws ReadOnlyException an attempt at supplying information designated as read only 1156 * @throws VersionMismatchException if someone else has updated this person record since you fetched the version you are 1157 * updating. 1158 */ 1159 public PersonAffiliationInfo updatePersonAffiliation(@WebParam(name = "personAffiliationId") String personAffiliationId, 1160 @WebParam(name = "personAffiliationInfo") PersonAffiliationInfo personAffiliationInfo, 1161 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1162 DataValidationErrorException, 1163 DoesNotExistException, 1164 InvalidParameterException, 1165 MissingParameterException, 1166 OperationFailedException, 1167 PermissionDeniedException, 1168 ReadOnlyException, 1169 VersionMismatchException; 1170 1171 /** 1172 * Deletes an existing Person Affiliation. 1173 * 1174 * @param personAffiliationId the affiliation for the person affiliation record to be deleted 1175 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1176 * operation 1177 * @return the status of the delete operation. This must always be true. 1178 * @throws DoesNotExistException personAffiliationId is not found 1179 * @throws InvalidParameterException personAffiliationId or contextInfo is not valid 1180 * @throws MissingParameterException personAffiliationId or contextInfo is missing or null 1181 * @throws OperationFailedException unable to complete request 1182 * @throws PermissionDeniedException an authorization failure occurred 1183 */ 1184 public StatusInfo deletePersonAffiliation(@WebParam(name = "personAffiliationId") String personAffiliationId, 1185 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1186 DoesNotExistException, 1187 InvalidParameterException, 1188 MissingParameterException, 1189 OperationFailedException, 1190 PermissionDeniedException; 1191 1192 /** 1193 * Get person affiliations for a person 1194 * 1195 * @param personId the affiliation for the person 1196 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1197 * operation 1198 * @return list of affiliations for that person 1199 * @throws DoesNotExistException personId is not found 1200 * @throws InvalidParameterException personId or contextInfo is not valid 1201 * @throws MissingParameterException personId or contextInfo is missing or null 1202 * @throws OperationFailedException unable to complete request 1203 * @throws PermissionDeniedException an authorization failure occurred 1204 */ 1205 public List<PersonAffiliationInfo> getPersonAffiliationsByPerson(@WebParam(name = "personId") String personId, 1206 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1207 DoesNotExistException, 1208 InvalidParameterException, 1209 MissingParameterException, 1210 OperationFailedException, 1211 PermissionDeniedException; 1212 1213 /** 1214 * Get active people matching a name name fragment with the specified affiliation to a particular organization. 1215 * 1216 * "Active" can be institutionally configured but is intended to select just those whose affiliations are current. 1217 * I.e. the store my contain many old students who graduated years ago but this method should filter them out. 1218 * 1219 * @param nameFragment to match the name 1220 * @param personAffiliationTypeKey the type of the affiliation to be searched 1221 * @param organizationId the affiliation for the person 1222 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1223 * operation 1224 * @return a list of person ids matching the specific affiliation 1225 * @throws InvalidParameterException personAffiliationTypeKey or contextInfo is not valid 1226 * @throws MissingParameterException personAffiliationTypeKey or contextInfo is missing or null 1227 * @throws OperationFailedException unable to complete request 1228 * @throws PermissionDeniedException an authorization failure occurred 1229 */ 1230 public List<PersonInfo> getActivePeopleMatchingNameFragmentAndAffiliation( 1231 @WebParam(name = "nameFragment") String nameFragment, 1232 @WebParam(name = "personAffiliationTypeKey") String personAffiliationTypeKey, 1233 @WebParam(name = "organizationId") String organizationId, 1234 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1235 InvalidParameterException, 1236 MissingParameterException, 1237 OperationFailedException, 1238 PermissionDeniedException; 1239 1240 1241 /** 1242 * Get the Organization Id to use for Institutional affiliations 1243 * 1244 * This is sort of a default organization id to use when querying affiliations. 1245 * 1246 * @param contextInfo Context information containing the principalId and locale information about the caller of service 1247 * operation 1248 * @return a list of person ids matching the specific affiliation 1249 * @throws InvalidParameterException personAffiliationTypeKey or contextInfo is not valid 1250 * @throws MissingParameterException personAffiliationTypeKey or contextInfo is missing or null 1251 * @throws OperationFailedException unable to complete request 1252 * @throws PermissionDeniedException an authorization failure occurred 1253 */ 1254 public String getInstitutionalAffiliationOrganizationId( 1255 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws 1256 InvalidParameterException, 1257 MissingParameterException, 1258 OperationFailedException, 1259 PermissionDeniedException; 1260 }