Coverage Report - org.kuali.student.enrollment.lpr.service.LuiPersonRelationService
 
Classes in this File Line Coverage Branch Coverage Complexity
LuiPersonRelationService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2009 The Kuali Foundation Licensed under the Educational Community
 3  
  * License, Version 1.0 (the "License"); you may not use this file except in
 4  
  * compliance with the License. You may obtain a copy of the License at
 5  
  * http://www.opensource.org/licenses/ecl1.php Unless required by applicable law
 6  
  * or agreed to in writing, software distributed under the License is
 7  
  * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 8  
  * KIND, either express or implied. See the License for the specific language
 9  
  * governing permissions and limitations under the License.
 10  
  */
 11  
 package org.kuali.student.enrollment.lpr.service;
 12  
 
 13  
 import java.util.List;
 14  
 
 15  
 import javax.jws.WebParam;
 16  
 import javax.jws.WebService;
 17  
 import javax.jws.soap.SOAPBinding;
 18  
 
 19  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 20  
 import org.kuali.student.enrollment.lpr.dto.LprRosterEntryInfo;
 21  
 import org.kuali.student.enrollment.lpr.dto.LprRosterInfo;
 22  
 import org.kuali.student.enrollment.lpr.dto.LprTransactionInfo;
 23  
 import org.kuali.student.enrollment.lpr.dto.LprTransactionItemInfo;
 24  
 import org.kuali.student.enrollment.lpr.dto.LuiPersonRelationInfo;
 25  
 import org.kuali.student.enrollment.lui.dto.LuiInfo;
 26  
 import org.kuali.student.r2.common.dto.ContextInfo;
 27  
 import org.kuali.student.r2.common.dto.StatusInfo;
 28  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 29  
 import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
 30  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 31  
 import org.kuali.student.r2.common.exceptions.DisabledIdentifierException;
 32  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 33  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 34  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 35  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 36  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 37  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 38  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 39  
 import org.kuali.student.r2.common.util.constants.LuiPersonRelationServiceConstants;
 40  
 
 41  
 /**
 42  
  * The Lui Person Relationship (LPR) Service Maintains the relationship between
 43  
  * a Learning Unit Instance and a Person. Depending on the type this service
 44  
  * maintains relationships such as:
 45  
  * <ul>
 46  
  * <li>a student's registration in a course
 47  
  * <li>a student's enrollment in a program (major or minor)
 48  
  * <li>an instructor's assignment to teach a course
 49  
  * <li>a faculty member's assignment as an advisor for a program
 50  
  * </ul>
 51  
  * Version: 1.0 (Dev)
 52  
  *
 53  
  * @Author Kamal
 54  
  * @Since Tue Mar 01 15:53:51 PST 2011
 55  
  * @See <a
 56  
  * href="https://wiki.kuali.org/display/KULSTU/LUI+Person+Relation+Service"
 57  
  * >LuiPersonRelationService</>
 58  
  */
 59  
 @WebService(name = "LuiPersonRelationService", targetNamespace = LuiPersonRelationServiceConstants.NAMESPACE)
 60  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 61  
 public interface LuiPersonRelationService {
 62  
 
 63  
     /**
 64  
      * Retrieves the Relation for the specified LUI Person Relation id
 65  
      *
 66  
      * @param luiPersonRelationId Identifier for the LUI Person Relation
 67  
      * @param context             Context information containing the principalId and locale
 68  
      *                            information about the caller of service operation
 69  
      * @return LUI Person Relation information
 70  
      * @throws DoesNotExistException     luiPersonRelationId not found
 71  
      * @throws InvalidParameterException invalid luiPersonRelationId
 72  
      * @throws MissingParameterException missing luiPersonRelationId
 73  
      * @throws OperationFailedException  unable to complete request
 74  
      * @throws PermissionDeniedException authorization failure
 75  
      */
 76  
     public LuiPersonRelationInfo getLpr(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId,
 77  
             @WebParam(name = "context") ContextInfo context)
 78  
             throws DoesNotExistException,
 79  
             InvalidParameterException, MissingParameterException, OperationFailedException,
 80  
             PermissionDeniedException;
 81  
 
 82  
     /**
 83  
      * Retrieves the Relation for the specified list of LUI Person Relation Ids
 84  
      *
 85  
      * @param luiPersonRelationIds List of identifiers for LUI Person
 86  
      *                                Relations
 87  
      * @param context                 Context information containing the principalId and locale
 88  
      *                                information about the caller of service operation
 89  
      * @return List of LUI Person Relation information
 90  
      * @throws DoesNotExistException     One or more luiPersonRelationIds not found
 91  
      * @throws InvalidParameterException One or more invalid
 92  
      *                                   luiPersonRelationIds
 93  
      * @throws MissingParameterException missing luiPersonRelationIds
 94  
      * @throws OperationFailedException  unable to complete request
 95  
      * @throws PermissionDeniedException authorization failure
 96  
      */
 97  
     public List<LuiPersonRelationInfo> getLprsByIds(@WebParam(name = "luiPersonRelationIds") List<String> luiPersonRelationIds,
 98  
             @WebParam(name = "context") ContextInfo context)
 99  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 100  
             OperationFailedException, PermissionDeniedException;
 101  
 
 102  
     /**
 103  
      * Retrieves the LUI Ids for Person, type and state.
 104  
      * 
 105  
      * This would allow you to get all the active (state) courses 
 106  
      * (type=registration) for a student.
 107  
      *
 108  
      * @param personId                 Identifier for the Person 
 109  
      * @param luiPersonRelationTypeKey Type of LUI Person Relation
 110  
      * @param relationState            Relation State
 111  
      * @param context                  Context information containing the principalId and locale
 112  
      *                                 information about the caller of service operation
 113  
      * @return Simple list of LUI Ids
 114  
      * @throws DoesNotExistException       personId, luiPersonRelationTypeKey,
 115  
      *                                     relationState, person to LUI relationship not found
 116  
      * @throws DisabledIdentifierException personId found, but has been retired
 117  
      * @throws InvalidParameterException   invalid personId,
 118  
      *                                     luiPersonRelationTypeKey, relationState
 119  
      * @throws MissingParameterException   missing personId,
 120  
      *                                     luiPersonRelationTypeKey, relationState
 121  
      * @throws OperationFailedException    unable to complete request
 122  
      * @throws PermissionDeniedException   authorization failure
 123  
      */
 124  
     public List<String> getLuiIdsByPersonAndTypeAndState(@WebParam(name = "personId") String personId,
 125  
             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
 126  
             @WebParam(name = "relationState") String relationState,
 127  
             @WebParam(name = "context") ContextInfo context)
 128  
             throws DoesNotExistException, DisabledIdentifierException,
 129  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 130  
 
 131  
     /**
 132  
      * Retrieves Person Ids related to the specified LUI, type and state
 133  
      * 
 134  
      * This would allow you to get a list of people who are active (state) students (type=registration) 
 135  
      * for a particular course (luiId) 
 136  
      * 
 137  
      *
 138  
      * @param luiId                    Identifier for the LUI
 139  
      * @param luiPersonRelationTypeKey Type of LUI Person Relation
 140  
      * @param relationState            Relation State
 141  
      * @param context                  Context information containing the principalId and locale
 142  
      *                                 information about the caller of service operation
 143  
      * @return Simple list of Person Ids
 144  
      * @throws DoesNotExistException     luiId, luiPersonRelationTypeKey,
 145  
      *                                   relationState, LUI to person relationship not found
 146  
      * @throws InvalidParameterException invalid luiId,
 147  
      *                                   luiPersonRelationTypeKey, relationState
 148  
      * @throws MissingParameterException missing luiId,
 149  
      *                                   luiPersonRelationTypeKey, relationState
 150  
      * @throws OperationFailedException  unable to complete request
 151  
      * @throws PermissionDeniedException authorization failure
 152  
      */
 153  
     public List<String> getPersonIdsByLuiAndTypeAndState(@WebParam(name = "luiId") String luiId,
 154  
             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
 155  
             @WebParam(name = "relationState") String relationState,
 156  
             @WebParam(name = "context") ContextInfo context)
 157  
             throws DoesNotExistException, InvalidParameterException,
 158  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 159  
 
 160  
     /**
 161  
      * Retrieves Person Relation for LUI
 162  
      *
 163  
      * @param personId Identifier for person
 164  
      * @param luiId    Identifier for LUI
 165  
      * @param context  Context information containing the principalId and locale
 166  
      *                 information about the caller of service operation
 167  
      * @return List of LUI Person Relation info
 168  
      * @throws DoesNotExistException       personId, luiId not found
 169  
      * @throws DisabledIdentifierException personId found, but has been retired
 170  
      * @throws InvalidParameterException   invalid personId, luiId
 171  
      * @throws MissingParameterException   missing personId, luiId
 172  
      * @throws OperationFailedException    unable to complete request
 173  
      * @throws PermissionDeniedException   authorization failure
 174  
      */
 175  
     public List<LuiPersonRelationInfo> getLprsByPersonAndLui(@WebParam(name = "personId") String personId,
 176  
             @WebParam(name = "luiId") String luiId,
 177  
             @WebParam(name = "context") ContextInfo context)
 178  
             throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException,
 179  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 180  
 
 181  
     /**
 182  
      * Retrieves LUI Person Relation Ids for a person and LuiId
 183  
      * 
 184  
      * Can be used to get course registrations for a person in a particular course.
 185  
      * Although this would typically only return one registration for each set of values, but
 186  
      * if a person adds a course then drops it then adds it again you could get multiple registrations.
 187  
      *
 188  
      * @param personId Identifier for person
 189  
      * @param luiId    Identifier for LUI
 190  
      * @param context  Context information containing the principalId and locale
 191  
      *                 information about the caller of service operation
 192  
      * @return List of LUI Person Relation display info
 193  
      * @throws DoesNotExistException       personId, luiId not found
 194  
      * @throws DisabledIdentifierException personId found, but has been retired
 195  
      * @throws InvalidParameterException   invalid personId, luiId
 196  
      * @throws MissingParameterException   missing personId, luiId
 197  
      * @throws OperationFailedException    unable to complete request
 198  
      * @throws PermissionDeniedException   authorization failure
 199  
      */
 200  
     public List<String> getLprIdsByPersonAndLui (@WebParam(name = "personId") String personId,
 201  
             @WebParam(name = "luiId") String luiId,
 202  
             @WebParam(name = "context") ContextInfo context)
 203  
             throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException,
 204  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 205  
 
 206  
     /**
 207  
      * Retrieves LUI Person Relations for Person
 208  
      * 
 209  
      * Can be used to get all the course registrations for a person for as long as 
 210  
      * they have been at the school, but please note it could include student registrations
 211  
      * in things that are not courses OR student's acting as teaching assistants
 212  
      * to courses.
 213  
      * 
 214  
      * @param personId Identifier for person
 215  
      * @param context  Context information containing the principalId and locale
 216  
      *                 information about the caller of service operation
 217  
      * @return List of LUI Person Relation info
 218  
      * @throws DoesNotExistException       personId not found
 219  
      * @throws DisabledIdentifierException personId found, but has been retired
 220  
      * @throws InvalidParameterException   invalid personId
 221  
      * @throws MissingParameterException   missing personId
 222  
      * @throws OperationFailedException    unable to complete request
 223  
      * @throws PermissionDeniedException   authorization failure
 224  
      */
 225  
     public List<LuiPersonRelationInfo> getLprsByPerson(@WebParam(name = "personId") String personId,
 226  
             @WebParam(name = "context") ContextInfo context)
 227  
             throws DoesNotExistException,
 228  
             DisabledIdentifierException, InvalidParameterException, MissingParameterException,
 229  
             OperationFailedException, PermissionDeniedException;
 230  
 
 231  
     /**
 232  
      * Retrieves LUI Person Relation Ids for a Person
 233  
      *
 234  
      * @param personId Identifier for person
 235  
      * @param context  Context information containing the principalId and locale
 236  
      *                 information about the caller of service operation
 237  
      * @return Simple list of person relation identifiers
 238  
      * @throws DoesNotExistException       personId not found
 239  
      * @throws DisabledIdentifierException personId found, but has been retired
 240  
      * @throws InvalidParameterException   invalid personId
 241  
      * @throws MissingParameterException   missing personId
 242  
      * @throws OperationFailedException    unable to complete request
 243  
      * @throws PermissionDeniedException   authorization failure
 244  
      */
 245  
     public List<String> getLprIdsByPerson(@WebParam(name = "personId") String personId,
 246  
             @WebParam(name = "context") ContextInfo context)
 247  
             throws DoesNotExistException, DisabledIdentifierException,
 248  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 249  
 
 250  
     /**
 251  
      * Retrieves LUI Person Relation for a specified LUI
 252  
      * 
 253  
      * Can be used to get all the people and their relationship to a particular
 254  
      * course offering.
 255  
      *
 256  
      * @param luiId   Identifier for LUI
 257  
      * @param context Context information containing the principalId and locale
 258  
      *                information about the caller of service operation
 259  
      * @return List of LUI Person Relation info
 260  
      * @throws DoesNotExistException     luiId not found
 261  
      * @throws InvalidParameterException invalid luiId
 262  
      * @throws MissingParameterException missing luiId
 263  
      * @throws OperationFailedException  unable to complete request
 264  
      * @throws PermissionDeniedException authorization failure
 265  
      */
 266  
     public List<LuiPersonRelationInfo> getLprsByLui(@WebParam(name = "luiId") String luiId,
 267  
             @WebParam(name = "context") ContextInfo context)
 268  
             throws DoesNotExistException, InvalidParameterException,
 269  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 270  
 
 271  
     /**
 272  
      * Retrieves LUIPersonRelation Ids for LUI
 273  
      * 
 274  
      * Can be used to get all the people and their relationship to a particular
 275  
      * course offering.
 276  
      * 
 277  
      * @param luiId   Identifier for LUI
 278  
      * @param context Context information containing the principalId and locale
 279  
      *                information about the caller of service operation
 280  
      * @return Simple list of LUI Person Relation identifiers
 281  
      * @throws DoesNotExistException     luiId not found
 282  
      * @throws InvalidParameterException invalid luiId
 283  
      * @throws MissingParameterException missing luiId
 284  
      * @throws OperationFailedException  unable to complete request
 285  
      * @throws PermissionDeniedException authorization failure
 286  
      */
 287  
     public List<String> getLprIdsByLui(@WebParam(name = "luiId") String luiId,
 288  
             @WebParam(name = "context") ContextInfo context)
 289  
             throws DoesNotExistException, InvalidParameterException,
 290  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 291  
 
 292  
     /**
 293  
      * Retrieves LUI Person Relation for a particular type and specified LUI
 294  
      *
 295  
      * Can be used to get all the people with a particular relationship to a 
 296  
      * specified course offering.
 297  
      * 
 298  
      * @param typeKey
 299  
      * @param luiId
 300  
      * @param context
 301  
      * @return
 302  
      * @throws DoesNotExistException
 303  
      * @throws InvalidParameterException
 304  
      * @throws MissingParameterException
 305  
      * @throws OperationFailedException
 306  
      * @throws PermissionDeniedException
 307  
      */
 308  
     public List<LuiPersonRelationInfo> getLprsByLuiAndType (@WebParam(name = "luiId") String luiId,
 309  
             @WebParam(name = "typeKey") String typeKey,
 310  
             @WebParam(name = "context") ContextInfo context)
 311  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 312  
             OperationFailedException, PermissionDeniedException;
 313  
 
 314  
     /**
 315  
      * Retrieves a list of LPRs by person and ATP
 316  
      *
 317  
      * Can be used to get a list of registrations or instructor assignments for a person and a term
 318  
      * 
 319  
      * Note: the ATP is not stored on the LPR but on the Lui so the ATP specified is used
 320  
      * to select or filter the Lui ids that can appear on the LPRs that are returned.
 321  
      * 
 322  
      * @param personId
 323  
      * @param atpId
 324  
      * @param context
 325  
      * @return
 326  
      * @throws DoesNotExistException
 327  
      * @throws InvalidParameterException
 328  
      * @throws MissingParameterException
 329  
      * @throws OperationFailedException
 330  
      * @throws PermissionDeniedException
 331  
      */
 332  
     public List<LuiPersonRelationInfo> getLprsByPersonForAtp(@WebParam(name = "personId") String personId,
 333  
             @WebParam(name = "atpId") String atpId,
 334  
             @WebParam(name = "context") ContextInfo context)
 335  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 336  
             OperationFailedException, PermissionDeniedException;
 337  
 
 338  
     /**
 339  
      * Retrieves a list of LPRs for a person and particular ATP by the type of
 340  
      * LPR.
 341  
      *
 342  
      * Can be used to get a list of registrations for a person and a person 
 343  
      * but making sure to exclude other types of relations the student may have 
 344  
      * during that term such as also being an teaching assistant for a course.
 345  
      * 
 346  
      * @param personId
 347  
      * @param atpId
 348  
      * @param context
 349  
      * @return
 350  
      * @throws DoesNotExistException
 351  
      * @throws InvalidParameterException
 352  
      * @throws MissingParameterException
 353  
      * @throws OperationFailedException
 354  
      * @throws PermissionDeniedException
 355  
      */
 356  
     public List<LuiPersonRelationInfo> getLprsByPersonAndTypeForAtp(@WebParam(name = "personId") String personId,
 357  
             @WebParam(name = "atpId") String atpId,
 358  
             @WebParam(name = "typeKey") String typeKey,
 359  
             @WebParam(name = "context") ContextInfo context)
 360  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 361  
             OperationFailedException, PermissionDeniedException;
 362  
 
 363  
     /**
 364  
      * Gets the LPRs for a person and the type Lui.
 365  
      * 
 366  
      * Can be used to get a list of all the relations a person may have to a course 
 367  
      * offering (which is a lui type).
 368  
      *
 369  
      * @param personId   person identifier
 370  
      * @param luiTypeKey type of the LUI
 371  
      * @param context
 372  
      * @return
 373  
      * @throws DoesNotExistException
 374  
      * @throws InvalidParameterException
 375  
      * @throws MissingParameterException
 376  
      * @throws OperationFailedException
 377  
      * @throws PermissionDeniedException
 378  
      */
 379  
     public List<LuiPersonRelationInfo> getLprsByPersonAndLuiType(@WebParam(name = "personId") String personId,
 380  
             @WebParam(name = "luiTypeKey") String luiTypeKey,
 381  
             @WebParam(name = "context") ContextInfo context)
 382  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 383  
             OperationFailedException, PermissionDeniedException;
 384  
 
 385  
     /**
 386  
      * Gets the the LPRs for a person and atp and Lui type.
 387  
      * 
 388  
      * Can be used to get the relations a person may have to a course offering
 389  
      * (which is a lui type) and a particular term (atpId)
 390  
      *
 391  
      * @param personId
 392  
      * @param atpId
 393  
      * @param luiTypeKey
 394  
      * @param context
 395  
      * @return
 396  
      * @throws DoesNotExistException
 397  
      * @throws InvalidParameterException
 398  
      * @throws MissingParameterException
 399  
      * @throws OperationFailedException
 400  
      * @throws PermissionDeniedException
 401  
      */
 402  
     public List<LuiPersonRelationInfo> getLprsByPersonForAtpAndLuiType(@WebParam(name = "personId") String personId,
 403  
             @WebParam(name = "atpId") String atpId,
 404  
             @WebParam(name = "luiTypeKey") String luiTypeKey,
 405  
             @WebParam(name = "context") ContextInfo context)
 406  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 407  
             OperationFailedException, PermissionDeniedException;
 408  
 
 409  
     /**
 410  
      * Validates the particular relation in a state for a Person and LUI
 411  
      *
 412  
      * @param validationType        Identifier of the extent of validation
 413  
      * @param luiPersonRelationInfo LuiPersonRelation to be validated
 414  
      * @param context               Context information containing the principalId and locale
 415  
      *                              information about the caller of service operation
 416  
      * @return list of validation results, list should be be zero length if no
 417  
      *         validation rsults are generated
 418  
      * @throws DoesNotExistException     luiPersonRelationInfo not found
 419  
      * @throws InvalidParameterException invalid luiPersonRelationInfo
 420  
      *                                   relationState
 421  
      * @throws MissingParameterException missing luiPersonRelationInfo
 422  
      * @throws OperationFailedException  unable to complete request
 423  
      * @throws PermissionDeniedException authorization failure
 424  
      */
 425  
     public List<ValidationResultInfo> validateLpr(@WebParam(name = "validationType") String validationType,
 426  
             @WebParam(name = "luiPersonRelationInfo") LuiPersonRelationInfo luiPersonRelationInfo,
 427  
             @WebParam(name = "context") ContextInfo context)
 428  
             throws DoesNotExistException, InvalidParameterException,
 429  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 430  
 
 431  
     /**
 432  
      * Retrieves LUIs for an academic time period where the specified relation
 433  
      * type and state would be valid for the specified person
 434  
      *
 435  
      * @param personId Identifier for person
 436  
      * @param luiPersonRelationTypeKey Type of luiPersonRelationI
 437  
      * @param relationState Relation State
 438  
      * @param atpId Identifier for academic time period
 439  
      * @param context Context information containing the principalId and locale
 440  
      *            information about the caller of service operation
 441  
      * @return List of LUIs
 442  
      * @throws DoesNotExistException personId, luiPersonRelationTypeKey,
 443  
      *             relationState, atpId not found
 444  
      * @throws DisabledIdentifierException personId found, but has been retired
 445  
      * @throws InvalidParameterException invalid personId,
 446  
      *             luiPersonRelationTypeKey, relationState, atpId
 447  
      * @throws MissingParameterException missing personId,
 448  
      *             luiPersonRelationTypeKey, relationState, atpId
 449  
      * @throws OperationFailedException unable to complete request
 450  
      * @throws PermissionDeniedException authorization failure
 451  
      */
 452  
     // TODO check the need of such a method in class 2, if none exist delete
 453  
     // this.
 454  
     // public List<String> getAllValidLuisForPerson(@WebParam(name = "personId")
 455  
     // String personId, @WebParam(name = "luiPersonRelationTypeKey") String
 456  
     // luiPersonRelationTypeKey, @WebParam(name = "relationState") String
 457  
     // relationState, @WebParam(name = "atpId") String atpId, @WebParam(name =
 458  
     // "context") ContextInfo context) throws DoesNotExistException,
 459  
     // DisabledIdentifierException, InvalidParameterException,
 460  
     // MissingParameterException, OperationFailedException,
 461  
     // PermissionDeniedException;
 462  
     /**
 463  
      * Retrieves detail of LUI Person Relation Ids
 464  
      *
 465  
      * @param criteria Criteria to be used for retrieval of multiple LUI Person
 466  
      *                 Relation identifiers
 467  
      * @param context  Context information containing the principalId and locale
 468  
      *                 information about the caller of service operation
 469  
      * @return Simple list of LUI Person Relation identifiers
 470  
      * @throws InvalidParameterException invalid relation criteria
 471  
      * @throws MissingParameterException missing relation criteria
 472  
      * @throws OperationFailedException  unable to complete request
 473  
      * @throws PermissionDeniedException authorization failure
 474  
      */
 475  
     public List<String> searchForLprIds(@WebParam(name = "criteria") QueryByCriteria criteria,
 476  
             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException,
 477  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 478  
 
 479  
     /**
 480  
      * Retrieves detail of LUI Person Relation by search criteria
 481  
      *
 482  
      * @param criteria Criteria to be used for retrieval of multiple LUI Person
 483  
      *                 Relation identifiers
 484  
      * @param context  Context information containing the principalId and locale
 485  
      *                 information about the caller of service operation
 486  
      * @return Simple list of LUI Person Relation identifiers
 487  
      * @throws InvalidParameterException invalid relation criteria
 488  
      * @throws MissingParameterException missing relation criteria
 489  
      * @throws OperationFailedException  unable to complete request
 490  
      * @throws PermissionDeniedException authorization failure
 491  
      */
 492  
     public List<LuiPersonRelationInfo> searchForLprs(@WebParam(name = "criteria") QueryByCriteria criteria,
 493  
             @WebParam(name = "context") ContextInfo context)
 494  
             throws InvalidParameterException,
 495  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 496  
 
 497  
     /**
 498  
      * Creates relation between the specified Person and LUI
 499  
      *
 500  
      * @param personId                 Person Identifier
 501  
      * @param luiId                    LUI Identifier
 502  
      * @param luiPersonRelationTypeKey Type of LUI to Person Relation
 503  
      * @param luiPersonRelationInfo    Information required to create the LUI
 504  
      *                                 Person relation
 505  
      * @param context                  Context information containing the principalId and locale
 506  
      *                                 information about the caller of service operation
 507  
      * @return Structure containing LUI Person relation identifiers
 508  
      * @throws AlreadyExistsException       relation already exists
 509  
      * @throws DataValidationErrorException if luiPeronsRelationInfo is not
 510  
      *                                      valid
 511  
      * @throws ReadOnlyException            attempt to update a read only attribute
 512  
      * @throws DoesNotExistException        personId, luiId, relationState,
 513  
      *                                      luiPersonRelationTypeKey does not exist
 514  
      * @throws DisabledIdentifierException  personId found, but has been retired
 515  
      * @throws InvalidParameterException    invalid personId, luiId, relationState,
 516  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 517  
      * @throws MissingParameterException    missing personId, luiId, relationState,
 518  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 519  
      * @throws OperationFailedException     unable to complete request
 520  
      * @throws PermissionDeniedException    authorization failure
 521  
      */
 522  
     public String createLpr(@WebParam(name = "personId") String personId,
 523  
             @WebParam(name = "luiId") String luiId,
 524  
             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
 525  
             @WebParam(name = "luiPersonRelationInfo") LuiPersonRelationInfo luiPersonRelationInfo,
 526  
             @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException,
 527  
             AlreadyExistsException, DoesNotExistException, DisabledIdentifierException,
 528  
             ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException,
 529  
             PermissionDeniedException;
 530  
 
 531  
     /**
 532  
      * Creates bulk relationships for one specified person. This is an all or
 533  
      * nothing transaction - any error will invalidate the entire transaction.
 534  
      *
 535  
      * @param personId                 Identifier for Person
 536  
      * @param luiIds                Simple list of LUI identifiers
 537  
      * @param relationState            Relation state
 538  
      * @param luiPersonRelationTypeKey Type of LUI Person relation
 539  
      * @param luiPersonRelationInfo    Information required to create the LUI
 540  
      *                                 Person relation
 541  
      * @param context                  Context information containing the principalId and locale
 542  
      *                                 information about the caller of service operation
 543  
      * @return Structure containing LUI Person relation identifiers
 544  
      * @throws AlreadyExistsException       relation already exists
 545  
      * @throws DataValidationErrorException if luiPeronsRelationInfo is not
 546  
      *                                      valid
 547  
      * @throws ReadOnlyException            attempt to update a read only attribute
 548  
      * @throws DoesNotExistException        personId, luiId, relationState,
 549  
      *                                      luiPersonRelationTypeKey does not exist
 550  
      * @throws DisabledIdentifierException  personId found, but has been retired
 551  
      * @throws InvalidParameterException    invalid personId, luiId, relationState,
 552  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 553  
      * @throws MissingParameterException    missing personId, luiId, relationState,
 554  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 555  
      * @throws OperationFailedException     unable to complete request
 556  
      * @throws PermissionDeniedException    authorization failure
 557  
      */
 558  
     public List<String> createBulkRelationshipsForPerson(@WebParam(name = "personId") String personId,
 559  
             @WebParam(name = "luiIds") List<String> luiIds,
 560  
             @WebParam(name = "relationState") String relationState,
 561  
             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
 562  
             @WebParam(name = "luiPersonRelationInfo") LuiPersonRelationInfo luiPersonRelationInfo,
 563  
             @WebParam(name = "context") ContextInfo context)
 564  
             throws DataValidationErrorException,
 565  
             AlreadyExistsException, DoesNotExistException, DisabledIdentifierException,
 566  
             ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException,
 567  
             PermissionDeniedException;
 568  
 
 569  
     /**
 570  
      * Creates bulk relationships for one specified LUI. This is an all or
 571  
      * nothing transaction - any error will invalidate the entire transaction.
 572  
      *
 573  
      * @param luiId                    Identifier for Lui
 574  
      * @param personIds             Simple list of Person identifiers
 575  
      * @param relationState            Relation state
 576  
      * @param luiPersonRelationTypeKey Type of LUI Person relation
 577  
      * @param luiPersonRelationInfo    Information required to create the LUI
 578  
      *                                 Person relation
 579  
      * @param context                  Context information containing the principalId and locale
 580  
      *                                 information about the caller of service operation
 581  
      * @return Structure containing LUI Person relation identifiers
 582  
      * @throws AlreadyExistsException       relation already exists
 583  
      * @throws DoesNotExistException        personId, luiId, relationState,
 584  
      *                                      luiPersonRelationTypeKey does not exist
 585  
      * @throws DisabledIdentifierException  personId found, but has been retired
 586  
      * @throws DataValidationErrorException errors validating
 587  
      *                                      luiPersonRelationInfo with all data filled in
 588  
      * @throws InvalidParameterException    invalid personId, luiId, relationState,
 589  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 590  
      * @throws MissingParameterException    missing personId, luiId, relationState,
 591  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 592  
      * @throws OperationFailedException     unable to complete request
 593  
      * @throws ReadOnlyException            attempt to update a read only attribute
 594  
      * @throws PermissionDeniedException    authorization failure
 595  
      */
 596  
     public List<String> createBulkRelationshipsForLui(@WebParam(name = "luiId") String luiId,
 597  
             @WebParam(name = "personIds") List<String> personIds,
 598  
             @WebParam(name = "relationState") String relationState,
 599  
             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
 600  
             @WebParam(name = "luiPersonRelationInfo") LuiPersonRelationInfo luiPersonRelationInfo,
 601  
             @WebParam(name = "context") ContextInfo context)
 602  
             throws AlreadyExistsException,
 603  
             DataValidationErrorException, DoesNotExistException, DisabledIdentifierException,
 604  
             ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException,
 605  
             PermissionDeniedException;
 606  
 
 607  
     /**
 608  
      * Update relation between Person and LUI
 609  
      *
 610  
      * @param luiPersonRelationId   Identifier for the LUI Person Relation
 611  
      * @param luiPersonRelationInfo Changed information about the LUI Person
 612  
      *                              Relation
 613  
      * @param context               Context information containing the principalId and locale
 614  
      *                              information about the caller of service operation
 615  
      * @return Updated information about the LUI Person Relation
 616  
      * @throws DataValidationErrorException if luiPersonRelationInfo is not
 617  
      *                                      valid
 618  
      * @throws DoesNotExistException        luiPersonRelationId does not exist
 619  
      * @throws InvalidParameterException    invalid luiPersonRelationId,
 620  
      *                                      luiPersonRelationInfo
 621  
      * @throws MissingParameterException    missing luiPersonRelationId,
 622  
      *                                      luiPersonRelationInfo
 623  
      * @throws ReadOnlyException            attempt to update a read only attribute
 624  
      * @throws OperationFailedException     unable to complete request
 625  
      * @throws PermissionDeniedException    authorization failure
 626  
      * @throws VersionMismatchException     if optimistic lock version ind has
 627  
      *                                      changed
 628  
      */
 629  
     public LuiPersonRelationInfo updateLpr(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId,
 630  
             @WebParam(name = "luiPersonRelationInfo") LuiPersonRelationInfo luiPersonRelationInfo,
 631  
             @WebParam(name = "context") ContextInfo context)
 632  
             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
 633  
             MissingParameterException, ReadOnlyException,
 634  
             OperationFailedException, PermissionDeniedException, VersionMismatchException;
 635  
 
 636  
     /**
 637  
      * Deletes relation between the specified Person and LUI
 638  
      *
 639  
      * @param luiPersonRelationId Identifier for the LUI Person Relation
 640  
      * @param context             Context information containing the principalId and locale
 641  
      *                            information about the caller of service operation
 642  
      * @return status of the operation (success, failed)
 643  
      * @throws DoesNotExistException     luiPersonRelationId does not exist
 644  
      * @throws InvalidParameterException invalid luiPersonRelationId
 645  
      * @throws MissingParameterException missing luiPersonRelationId
 646  
      * @throws OperationFailedException  unable to complete request
 647  
      * @throws PermissionDeniedException authorization failure
 648  
      */
 649  
     public StatusInfo deleteLpr(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId,
 650  
             @WebParam(name = "context") ContextInfo context)
 651  
             throws DoesNotExistException,
 652  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 653  
 
 654  
     /**
 655  
      * Update relation between Person and LUI
 656  
      *
 657  
      * @param lprRosterId   Identifier for the LUI Person Relation
 658  
      * @param lprRosterInfo Changed information about the LUI Person
 659  
      *                      Relation
 660  
      * @param context       Context information containing the principalId and locale
 661  
      *                      information about the caller of service operation
 662  
      * @return Updated information about the LUI Person Relation
 663  
      * @throws DataValidationErrorException if luiPersonRelationInfo is not
 664  
      *                                      valid
 665  
      * @throws DoesNotExistException        luiPersonRelationId does not exist
 666  
      * @throws InvalidParameterException    invalid luiPersonRelationId,
 667  
      *                                      luiPersonRelationInfo
 668  
      * @throws MissingParameterException    missing luiPersonRelationId,
 669  
      *                                      luiPersonRelationInfo
 670  
      * @throws ReadOnlyException            attempt to update a read only attribute
 671  
      * @throws OperationFailedException     unable to complete request
 672  
      * @throws PermissionDeniedException    authorization failure
 673  
      * @throws VersionMismatchException     if optimistic lock version ind has
 674  
      *                                      changed
 675  
      */
 676  
     public LprRosterInfo updateLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
 677  
             @WebParam(name = "lprRosterInfo") LprRosterInfo lprRosterInfo,
 678  
             @WebParam(name = "context") ContextInfo context)
 679  
             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, ReadOnlyException,
 680  
             OperationFailedException, PermissionDeniedException, VersionMismatchException;
 681  
 
 682  
     /**
 683  
      * Creates a roster
 684  
      *
 685  
      * @param lprRosterInfo Information required to create the LUI Person
 686  
      *                      relation roster
 687  
      * @param context       Context information containing the principalId and locale
 688  
      *                      information about the caller of service operation
 689  
      * @return Structure containing LUI Person relation identifiers
 690  
      * @throws AlreadyExistsException       relation already exists
 691  
      * @throws DataValidationErrorException if luiPeronsRelationInfo is not
 692  
      *                                      valid
 693  
      * @throws ReadOnlyException            attempt to update a read only attribute
 694  
      * @throws DoesNotExistException        personId, luiId, relationState,
 695  
      *                                      luiPersonRelationTypeKey does not exist
 696  
      * @throws DisabledIdentifierException  personId found, but has been retired
 697  
      * @throws InvalidParameterException    invalid personId, luiId, relationState,
 698  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 699  
      * @throws MissingParameterException    missing personId, luiId, relationState,
 700  
      *                                      luiPersonRelationTypeKey, luiPersonRelationInfo
 701  
      * @throws OperationFailedException     unable to complete request
 702  
      * @throws PermissionDeniedException    authorization failure
 703  
      */
 704  
     public String createLprRoster(@WebParam(name = "lprRosterInfo") LprRosterInfo lprRosterInfo,
 705  
             @WebParam(name = "context") ContextInfo context)
 706  
             throws DataValidationErrorException,
 707  
             AlreadyExistsException, DoesNotExistException, DisabledIdentifierException,
 708  
             ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException,
 709  
             PermissionDeniedException;
 710  
 
 711  
     /**
 712  
      * Deletes the LPRRoster
 713  
      *
 714  
      * @param lprRosterId Identifier for the LUI Person Relation
 715  
      * @param context     Context information containing the principalId and locale
 716  
      *                    information about the caller of service operation
 717  
      * @return status of the operation (success, failed)
 718  
      * @throws DoesNotExistException     lprRosterId does not exist
 719  
      * @throws InvalidParameterException invalid lprRosterId
 720  
      * @throws MissingParameterException missing lprRosterId
 721  
      * @throws OperationFailedException  unable to complete request
 722  
      * @throws PermissionDeniedException authorization failure
 723  
      */
 724  
     public StatusInfo deleteLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
 725  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException,
 726  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 727  
 
 728  
     /**
 729  
      * This method returns all the LPR roster entries contained in the LPR Roster.
 730  
      *
 731  
      * @param lprRosterId Identifier of LPR Roster
 732  
      * @param context
 733  
      * @throws DoesNotExistException     lprRosterId does not exist
 734  
      * @throws InvalidParameterException invalid lprRosterId
 735  
      * @throws MissingParameterException missing lprRosterId
 736  
      * @throws OperationFailedException  unable to complete request
 737  
      * @throws PermissionDeniedException authorization failure
 738  
      */
 739  
     public List<LprRosterEntryInfo> getLprRosterEntriesForRoster(@WebParam(name = "lprRosterId") String lprRosterId,
 740  
             @WebParam(name = "context") ContextInfo context)
 741  
             throws DoesNotExistException,
 742  
             InvalidParameterException, MissingParameterException, OperationFailedException,
 743  
             PermissionDeniedException;
 744  
 
 745  
     /**
 746  
      * Retrieves the LPR Roster Entries for the specified list of LPR Roster Entry Ids
 747  
      *
 748  
      * @param lprRosterEntryIds List of identifiers for LPR Roster Entries
 749  
      * @param context
 750  
      * @return List of LPR Roster Entry information
 751  
      * @throws DoesNotExistException     One or more lprRosterEntryIds not found
 752  
      * @throws InvalidParameterException One or more invalid lprRosterEntryIds
 753  
      * @throws MissingParameterException missing lprRosterEntryIds
 754  
      * @throws OperationFailedException  unable to complete request
 755  
      * @throws PermissionDeniedException authorization failure
 756  
      */
 757  
     public List<LprRosterEntryInfo> getLprRosterEntriesByIds(
 758  
             @WebParam(name = "lprRosterEntryIds") List<String> lprRosterEntryIds,
 759  
             @WebParam(name = "context") ContextInfo context)
 760  
             throws DoesNotExistException, InvalidParameterException,
 761  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 762  
 
 763  
     /**
 764  
      * This method returns a list of Lpr Rosters by LUI and Type. 
 765  
      * 
 766  
      * Can be used to get the waitlist (type) roster for a particular course offering (lui).
 767  
      *
 768  
      * @param luiId            LUI Identifier
 769  
      * @param lprRosterTypeKey LPR Roster Key
 770  
      * @param context
 771  
      * @return
 772  
      * @throws DoesNotExistException     luiId or lprRosterTypeKey invalid
 773  
      * @throws InvalidParameterException Invalid luiId or lprRosterTypeKey
 774  
      * @throws MissingParameterException Missing luiId or lprRosterTypeKey
 775  
      * @throws OperationFailedException  unable to complete request
 776  
      * @throws PermissionDeniedException authorization failure
 777  
      */
 778  
     public List<LprRosterInfo> getLprRostersByLuiAndType(@WebParam(name = "luiId") String luiId,
 779  
             @WebParam(name = "lprRosterTypeKey") String lprRosterTypeKey,
 780  
             @WebParam(name = "context") ContextInfo context)
 781  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 782  
             OperationFailedException, PermissionDeniedException;
 783  
 
 784  
     /**
 785  
      * Retrieve all LPR Rosters that are associated with a LUI.
 786  
      * 
 787  
      * Can be used to get all the rosters, waitlists, hold until lists, grade sheets, etc 
 788  
      * for a particular course offering.
 789  
      *
 790  
      * @param luiId   LUI Identifier
 791  
      * @param context
 792  
      * @return
 793  
      * @throws DoesNotExistException     luiId invalid
 794  
      * @throws InvalidParameterException Invalid luiId
 795  
      * @throws MissingParameterException Missing luiId
 796  
      * @throws OperationFailedException  unable to complete request
 797  
      * @throws PermissionDeniedException authorization failure
 798  
      */
 799  
     public List<LprRosterInfo> getLprRostersByLui(@WebParam(name = "luiId") String luiId,
 800  
             @WebParam(name = "context") ContextInfo context)
 801  
             throws DoesNotExistException, InvalidParameterException,
 802  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 803  
 
 804  
     /**
 805  
      * This method returns a LPR Roster by it's id.
 806  
      *
 807  
      * @param lprRosterId LPR Roster identifier
 808  
      * @param context
 809  
      * @return
 810  
      * @throws DoesNotExistException     lprRosterId invalid
 811  
      * @throws InvalidParameterException Invalid lprRosterEntryInfo
 812  
      * @throws MissingParameterException Missing lprRosterEntryInfo
 813  
      * @throws OperationFailedException  unable to complete request
 814  
      * @throws PermissionDeniedException authorization failure
 815  
      */
 816  
     public LprRosterInfo getLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
 817  
             @WebParam(name = "context") ContextInfo context)
 818  
             throws DoesNotExistException, InvalidParameterException,
 819  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 820  
 
 821  
     /**
 822  
      * Creates an Lpr Roster Entry at the position specified by the value of the 
 823  
      * relative position field inside the roster info. 
 824  
      * 
 825  
      * An empty position would mean add to the last position, a specified position 
 826  
      * means insert to that position.
 827  
      * 
 828  
      *
 829  
      * @param lprRosterEntryInfo
 830  
      * @param context
 831  
      * @throws DataValidationErrorException lprRosterEntryInfo data is not valid
 832  
      * @throws InvalidParameterException    Invalid lprRosterEntryInfo
 833  
      * @throws MissingParameterException    Missing lprRosterEntryInfo
 834  
      * @throws OperationFailedException     unable to complete request
 835  
      * @throws PermissionDeniedException    authorization failure
 836  
      */
 837  
     public String createLprRosterEntry(@WebParam(name = "lprRosterEntryInfo") LprRosterEntryInfo lprRosterEntryInfo,
 838  
             @WebParam(name = "context") ContextInfo context)
 839  
             throws DataValidationErrorException, AlreadyExistsException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 840  
 
 841  
     /**
 842  
      * Update The roster entry
 843  
      *
 844  
      * @param lprRosterEntryId   Identifier for the roster entry
 845  
      * @param lprRosterEntryInfo Changed information about the roster entry
 846  
      * @param context       Context information containing the principalId and locale
 847  
      *                      information about the caller of service operation
 848  
      * @return Updated information about the roster entry
 849  
      * @throws DataValidationErrorException if lprRosterEntryInfo is not
 850  
      *                                      valid
 851  
      * @throws DoesNotExistException        luiPersonRelationId does not exist
 852  
      * @throws InvalidParameterException    invalid luiPersonRelationId,
 853  
      *                                      luiPersonRelationInfo
 854  
      * @throws MissingParameterException    missing luiPersonRelationId,
 855  
      *                                      luiPersonRelationInfo
 856  
      * @throws ReadOnlyException            attempt to update a read only attribute
 857  
      * @throws OperationFailedException     unable to complete request
 858  
      * @throws PermissionDeniedException    authorization failure
 859  
      * @throws VersionMismatchException     if optimistic lock version ind has
 860  
      *                                      changed
 861  
      */
 862  
     public LprRosterInfo updateLprRosterEntry(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
 863  
             @WebParam(name = "lprRosterEntryInfo") LprRosterEntryInfo lprRosterEntryInfo,
 864  
             @WebParam(name = "context") ContextInfo context)
 865  
             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
 866  
             MissingParameterException, ReadOnlyException,
 867  
             OperationFailedException, PermissionDeniedException, VersionMismatchException;
 868  
 
 869  
     /**
 870  
      * Delete the Lpr Roster Entry
 871  
      *
 872  
      * @param lprRosterEntryId
 873  
      * @param context
 874  
      * @throws DoesNotExistException     not a valid lprRosterEntryId
 875  
      * @throws InvalidParameterException Invalid lprRosterEntryId
 876  
      * @throws MissingParameterException Missing lprRosterEntryId
 877  
      * @throws OperationFailedException  unable to complete request
 878  
      * @throws PermissionDeniedException authorization failure
 879  
      */
 880  
     public StatusInfo deleteLprRosterEntry(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
 881  
             @WebParam(name = "context") ContextInfo context)
 882  
             throws DoesNotExistException,
 883  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 884  
 
 885  
     /**
 886  
      * Inserts an existing roster entry at a particular position on the roster.
 887  
      * 
 888  
      * If another roster entry already exists at that particular position within 
 889  
      * the roster then this method "bumps down" the rest of the roster entries 
 890  
      * until there is an open position.
 891  
      * 
 892  
      * @param lprRosterEntryId
 893  
      * @param absolutePosition the position the person would be in if they 
 894  
      * @param context
 895  
      * @throws DoesNotExistException     One of the roster entry id in the list is
 896  
      *                                   not a valid id
 897  
      * @throws InvalidParameterException Invalid lprRosterEntryIds
 898  
      * @throws MissingParameterException Missing lprRosterEntryIds in the input
 899  
      * @throws OperationFailedException  unable to complete request
 900  
      */
 901  
     public StatusInfo insertLprRosterEntryInPosition(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
 902  
             @WebParam(name = "absolutePosition") Integer absolutePosition,
 903  
             @WebParam(name = "context") ContextInfo context)
 904  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
 905  
 
 906  
     /**
 907  
      * Reorders all the roster entries setting their position to match the order
 908  
      * within the specified list of LPR roster entry ids.
 909  
      * 
 910  
      * This is a bulk method to reset the positions all of the entries in the roster.
 911  
      * 
 912  
      * Any entries in the roster that are not contained in the list are ordered 
 913  
      * by their existing position and placed at the end of the entries in the
 914  
      * specified list.
 915  
      *
 916  
      * @param lprRosterEntryIds ordered list of LPR roster entry Ids
 917  
      * @param context
 918  
      * @throws DoesNotExistException     One of the roster entry id in the list is
 919  
      *                                   not a valid roster entry id
 920  
      * @throws InvalidParameterException Invalid lprRosterEntryIds 
 921  
      * @throws MissingParameterException Missing lprRosterEntryIds in the input
 922  
      * @throws OperationFailedException  unable to complete request
 923  
      */
 924  
     public StatusInfo reorderLprRosterEntries(@WebParam(name = "lprRosterEntryIds") List<String> lprRosterEntryIds,
 925  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 926  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 927  
 
 928  
     /**
 929  
      * This method creates a LPR transaction of the specified type
 930  
      * 
 931  
      * Validates the transaction generates a unique id for the request and 
 932  
      * persists it in the back-end.
 933  
      * 
 934  
      * TODO: Add requesting person Id and ATP id to these signature
 935  
      * 
 936  
      * @param lprTransactionInfo LPR transaction info
 937  
      * @param lprTransactionType LPR transaction type
 938  
      * @param context
 939  
      * @throws DataValidationErrorException if LprTransactionInfo fields are not
 940  
      *                                      valid
 941  
      * @throws AlreadyExistsException       LprTransactionInfo / LPR already exists
 942  
      * @throws DoesNotExistException        LUI or Person doesn't exist
 943  
      * @throws InvalidParameterException    Invalid lprTransactionType, lprTransaction
 944  
      * @throws MissingParameterException    Missing fields on LprTransactionInfo
 945  
      * @throws OperationFailedException     unable to complete request
 946  
      * @throws PermissionDeniedException    authorization failure
 947  
      */
 948  
     public LprTransactionInfo createLprTransaction(@WebParam(name = "lprTransactionType") String lprTransactionType,
 949  
             @WebParam(name = "lprTransactionInfo") LprTransactionInfo lprTransactionInfo,
 950  
             @WebParam(name = "context") ContextInfo context)
 951  
             throws DataValidationErrorException, AlreadyExistsException,
 952  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 953  
 
 954  
     /**
 955  
      * Creates a new Lpr Transaction from an existing LPR transaction
 956  
      *
 957  
      * Copies the transaction's Items as well.
 958  
      * 
 959  
      * The new transaction has the same type as the existing transaction.
 960  
      * Since transactions can only be processed once this method was intended
 961  
      * to allow the application to easily create a new transaction with all of it's items 
 962  
      * that the user be able to fix and update any problems that resulted from 
 963  
      * processing the existing transaction. 
 964  
      * 
 965  
      * @param lprTransactionId LprTransaction identifier
 966  
      * @param context
 967  
      * @throws DataValidationErrorException LprTransactionInfo is not valid
 968  
      * @throws AlreadyExistsException       LprTransactionInfo / LPR already exists
 969  
      * @throws DoesNotExistException        lprTransactionId doesn't exist
 970  
      * @throws InvalidParameterException    Invalid lprTransactionId
 971  
      * @throws MissingParameterException    Missing lprTransactionId
 972  
      * @throws OperationFailedException     unable to complete request
 973  
      * @throws PermissionDeniedException    authorization failure
 974  
      */
 975  
     public LprTransactionInfo createLprTransactionFromExisting(@WebParam(name = "lprTransactionId") String lprTransactionId,
 976  
             @WebParam(name = "context") ContextInfo context)
 977  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 978  
             OperationFailedException, PermissionDeniedException;
 979  
 
 980  
     /**
 981  
      * This method updates an LPR Transaction and all of it's items.
 982  
      *
 983  
      * @param lprTransactionId   The transaction identifier
 984  
      * @param lprTransactionInfo The updated Lpr Transaction
 985  
      * @param context
 986  
      * @throws DataValidationErrorException LprTransactionInfo is not valid
 987  
      * @throws DoesNotExistException        lprTransactionId doesn't exist
 988  
      * @throws InvalidParameterException    Invalid lprTransactionId or
 989  
      *                                      lprTransactionInfo
 990  
      * @throws MissingParameterException    Missing lprTransactionId or
 991  
      *                                      lprTransactionInfo
 992  
      * @throws OperationFailedException     unable to complete request
 993  
      * @throws PermissionDeniedException    authorization failure
 994  
      */
 995  
     public LprTransactionInfo updateLprTransaction(@WebParam(name = "lprTransactionId") String lprTransactionId,
 996  
             @WebParam(name = "lprTransactionInfo") LprTransactionInfo lprTransactionInfo,
 997  
             @WebParam(name = "context") ContextInfo context)
 998  
             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException,
 999  
             OperationFailedException, PermissionDeniedException;
 1000  
 
 1001  
     /**
 1002  
      * Retrieves the LPR Transactions based on it's identifier.
 1003  
      *
 1004  
      * @param lprTransactionId The transaction identifier
 1005  
      * @param context
 1006  
      * @throws DoesNotExistException     lprTransactionId doesn't exist
 1007  
      * @throws InvalidParameterException Invalid lprTransactionId
 1008  
      * @throws MissingParameterException Missing lprTransactionId
 1009  
      * @throws OperationFailedException  Unable to complete request
 1010  
      * @throws PermissionDeniedException Authorization failure
 1011  
      */
 1012  
     public LprTransactionInfo getLprTransaction(@WebParam(name = "lprTransactionId") String lprTransactionId,
 1013  
             @WebParam(name = "context") ContextInfo context)
 1014  
             throws DoesNotExistException,
 1015  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1016  
 
 1017  
     /**
 1018  
      * Retrieves LPR Transactions with an item by Person and LUI
 1019  
      * 
 1020  
      * Selects all transactions that have at least one item that matches the specified 
 1021  
      * person and either the existing or new lui.
 1022  
      * 
 1023  
      * Note: this matches the person on the item not the person requesting the transaction 
 1024  
      * which is on the transaction.
 1025  
      * 
 1026  
      * TODO: Think about recasting this to return Transaction Items instead, that is
 1027  
      * what we really want here and if we have to track back to the Transaction 
 1028  
      * then put the transaction id on the item so that can be done.
 1029  
      *
 1030  
      * @param personId The person identifier
 1031  
      * @param luiId    The LUI id
 1032  
      * @param context
 1033  
      * @throws DoesNotExistException     personId or luiId doesn't exist
 1034  
      * @throws InvalidParameterException Invalid personId or luiId
 1035  
      * @throws MissingParameterException Missing personId or luiId
 1036  
      * @throws OperationFailedException  Unable to complete request
 1037  
      * @throws PermissionDeniedException Authorization failure
 1038  
      */
 1039  
     public List<LprTransactionInfo> getLprTransactionsWithItemsByPersonAndLui(@WebParam(name = "personId") String personId,
 1040  
             @WebParam(name = "luiId") String luiId,
 1041  
             @WebParam(name = "context") ContextInfo context)
 1042  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 1043  
             OperationFailedException, PermissionDeniedException;
 1044  
 
 1045  
     /**
 1046  
      * Retrieves LPR Transactions with an item by Person and transaction states
 1047  
      * 
 1048  
      * Note: this matches the person on the item not the person requesting the transaction 
 1049  
      * which is on the transaction.
 1050  
      * 
 1051  
      * TODO: Think about recasting this to return Transaction Items instead, that is
 1052  
      * what we really want here and if we have to track back to the Transaction 
 1053  
      * then put the transaction id on the item so that can be done.
 1054  
      *
 1055  
      * @param personId The person identifier
 1056  
      * @param context
 1057  
      * @throws DoesNotExistException     personId doesn't exist
 1058  
      * @throws InvalidParameterException Invalid personId
 1059  
      * @throws MissingParameterException Missing personId
 1060  
      * @throws OperationFailedException  Unable to complete request
 1061  
      * @throws PermissionDeniedException Authorization failure
 1062  
      */
 1063  
     public List<String> getLprTransactionIdsByStateWithItemsByPerson(@WebParam(name = "personId") String personId,
 1064  
             @WebParam(name = "lprTransactionStates") List<String> lprTransactionStates,
 1065  
             @WebParam(name = "context") ContextInfo context)
 1066  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 1067  
             OperationFailedException, PermissionDeniedException;
 1068  
 
 1069  
     /**
 1070  
      * Get lpr transactions for the specified list of ids.
 1071  
      *
 1072  
      * @param lprIds
 1073  
      * @param context
 1074  
      * @throws DoesNotExistException
 1075  
      * @throws InvalidParameterException
 1076  
      * @throws MissingParameterException
 1077  
      * @throws OperationFailedException
 1078  
      * @throws PermissionDeniedException
 1079  
      */
 1080  
     public List<LprTransactionInfo> getLprTransactionsByIds(@WebParam(name = "lprIds") List<String> lprIds,
 1081  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 1082  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1083  
 
 1084  
     /**
 1085  
      * Retrieves LPR Transactions based on the resulting LPR.
 1086  
      * 
 1087  
      * Selects all transactions that have at least one item who's resulting lpr matches 
 1088  
      * the specified lpr.
 1089  
      * 
 1090  
      * TODO: Think about recasting this to return Transaction Items instead, that is
 1091  
      * what we really want here and if we have to track back to the Transaction 
 1092  
      * then put the transaction id on the item so that can be done.
 1093  
      * 
 1094  
      * @param lprId   The resulting lpr
 1095  
      * @param context
 1096  
      * @throws DoesNotExistException     personId doesn't exist
 1097  
      * @throws InvalidParameterException Invalid personId
 1098  
      * @throws MissingParameterException Missing personId
 1099  
      * @throws OperationFailedException  Unable to complete request
 1100  
      * @throws PermissionDeniedException Authorization failure
 1101  
      */
 1102  
     public List<LprTransactionInfo> getLprTransactionsWithItemsByResultingLpr(@WebParam(name = "lprId") String lprId,
 1103  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 1104  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1105  
 
 1106  
     /**
 1107  
      * Retrieves LPR Transactions based on an item with the specified LUI.
 1108  
      *
 1109  
      * Selects all transactions that have at least one item with the specified LUI.
 1110  
      * 
 1111  
      * TODO: Think about recasting this to return Transaction Items instead, that is
 1112  
      * what we really want here and if we have to track back to the Transaction 
 1113  
      * then put the transaction id on the item so that can be done.
 1114  
     
 1115  
      * @param luiId   The LUI identifier
 1116  
      * @param context
 1117  
      * @throws DoesNotExistException     personId doesn't exist
 1118  
      * @throws InvalidParameterException Invalid personId
 1119  
      * @throws MissingParameterException Missing personId
 1120  
      * @throws OperationFailedException  Unable to complete request
 1121  
      * @throws PermissionDeniedException Authorization failure
 1122  
      */
 1123  
     public List<LprTransactionInfo> getLprTransactionsWithItemsByLui(@WebParam(name = "luiId") String luiId,
 1124  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 1125  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1126  
 
 1127  
     /**
 1128  
      * Retrieves transactions for the requesting person and the ATP.
 1129  
      * 
 1130  
      * TODO: This method originally also additionally filtered on transaction state 
 1131  
      * but other evidence had it by lpr type consider adding back in so I took it 
 1132  
      * out.  Perhaps it should be added back in.
 1133  
      * 
 1134  
      * @param requestingPersonId The person identifier
 1135  
      * @param atpId   The ATP Id
 1136  
      * @param context
 1137  
      * @throws DoesNotExistException     atpId or personId doesn't exist
 1138  
      * @throws InvalidParameterException Invalid personId or atpId
 1139  
      * @throws MissingParameterException Missing personId or atpId
 1140  
      * @throws OperationFailedException  Unable to complete request
 1141  
      * @throws PermissionDeniedException Authorization failure
 1142  
      */
 1143  
     public List<LprTransactionInfo> getLprTransactionsByRequestingPersonAndAtp(
 1144  
             @WebParam(name = "personId") String requestingPersonId,
 1145  
             @WebParam(name = "atpId") String atpId,
 1146  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException,
 1147  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 1148  
 
 1149  
     /**
 1150  
      * Deletes an lpr Transaction based on Id.
 1151  
      *
 1152  
      * @param lprTransactionId LPR Transaction identifier
 1153  
      * @param context
 1154  
      * @return
 1155  
      * @throws DoesNotExistException     lprTransactionId doesn't exist
 1156  
      * @throws InvalidParameterException Invalid lprTransactionId
 1157  
      * @throws MissingParameterException Missing lprTransactionId
 1158  
      * @throws OperationFailedException  Unable to complete request
 1159  
      * @throws PermissionDeniedException Authorization failure
 1160  
      */
 1161  
     public StatusInfo deleteLprTransaction(@WebParam(name = "lprTransactionId") String lprTransactionId,
 1162  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 1163  
             InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1164  
 
 1165  
     /**
 1166  
      * Validate the LPR Transaction
 1167  
      *
 1168  
      * @param lprTransactionId
 1169  
      * @param context
 1170  
      * @return
 1171  
      * @throws DataValidationErrorException Invalid lprTransaction
 1172  
      * @throws DoesNotExistException        lprTransactionId doesn't exist
 1173  
      * @throws InvalidParameterException    Invalid lprTransactionId
 1174  
      * @throws MissingParameterException    Missing lprTransactionId
 1175  
      * @throws OperationFailedException     Unable to complete request
 1176  
      * @throws PermissionDeniedException    Authorization failure
 1177  
      */
 1178  
     public List<ValidationResultInfo> validateLprTransaction(@WebParam(name = "lprTransactionId") String lprTransactionId,
 1179  
             @WebParam(name = "context") ContextInfo context)
 1180  
             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
 1181  
             OperationFailedException, PermissionDeniedException;
 1182  
 
 1183  
     /**
 1184  
      * Submits a LPR transaction - validates the input and based on the type of
 1185  
      * transaction creates, updates, cancels or removes LPRs.
 1186  
      *
 1187  
      * @param lprTransactionId the id for the LPR transaction
 1188  
      * @param context
 1189  
      * @throws AlreadyExistsException       LPR is already present
 1190  
      * @throws DataValidationErrorException Invalid lprTransaction
 1191  
      * @throws DoesNotExistException        lprTransactionId doesn't exist
 1192  
      * @throws InvalidParameterException    Invalid lprTransactionId
 1193  
      * @throws MissingParameterException    Missing lprTransactionId
 1194  
      * @throws OperationFailedException     Unable to complete request
 1195  
      * @throws PermissionDeniedException    Authorization failure
 1196  
      */
 1197  
     public LprTransactionInfo processLprTransaction(@WebParam(name = "lprTransactionId") String lprTransactionId,
 1198  
             @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException,
 1199  
             DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1200  
 
 1201  
     /**
 1202  
      * search for matching LPR transactions
 1203  
      *
 1204  
      * @param criteria
 1205  
      * @param context
 1206  
      * @return
 1207  
      * @throws InvalidParameterException
 1208  
      * @throws MissingParameterException
 1209  
      * @throws OperationFailedException
 1210  
      * @throws PermissionDeniedException
 1211  
      */
 1212  
     public List<LprTransactionInfo> searchForLprTransactions(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException,
 1213  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 1214  
 
 1215  
     /**
 1216  
      * Search for matching LPR transactions returning their ids
 1217  
      *
 1218  
      * @param criteria
 1219  
      * @param context
 1220  
      * @return
 1221  
      * @throws InvalidParameterException
 1222  
      * @throws MissingParameterException
 1223  
      * @throws OperationFailedException
 1224  
      * @throws PermissionDeniedException
 1225  
      */
 1226  
     public List<String> searchForLprTransactionIds(@WebParam(name = "criteria") QueryByCriteria criteria,
 1227  
             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException,
 1228  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 1229  
 
 1230  
     /**
 1231  
      * Search for matching LPR rosters
 1232  
      *
 1233  
      * @param criteria
 1234  
      * @param context
 1235  
      * @return
 1236  
      * @throws InvalidParameterException
 1237  
      * @throws MissingParameterException
 1238  
      * @throws OperationFailedException
 1239  
      * @throws PermissionDeniedException
 1240  
      */
 1241  
     public List<LprRosterInfo> searchForLprRosters(@WebParam(name = "criteria") QueryByCriteria criteria,
 1242  
             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException,
 1243  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 1244  
 
 1245  
     /**
 1246  
      * Search for matching LPR rosters returning the ids
 1247  
      *
 1248  
      * @param criteria
 1249  
      * @param context
 1250  
      * @return
 1251  
      * @throws InvalidParameterException
 1252  
      * @throws MissingParameterException
 1253  
      * @throws OperationFailedException
 1254  
      * @throws PermissionDeniedException
 1255  
      */
 1256  
     public List<String> searchForLprRosterIds(@WebParam(name = "criteria") QueryByCriteria criteria,
 1257  
             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException,
 1258  
             MissingParameterException, OperationFailedException, PermissionDeniedException;
 1259  
 }