1 /* 2 * Copyright 2011 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the 5 * "License"); you may not use this file except in compliance with the 6 * License. You may obtain a copy of the License at 7 * 8 * http://www.osedu.org/licenses/ECL-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 13 * implied. See the License for the specific language governing 14 * permissions and limitations under the License. 15 */ 16 17 package org.kuali.student.enrollment.courseregistration.infc; 18 19 import java.util.List; 20 21 import org.kuali.student.r2.common.infc.IdEntity; 22 23 /** 24 * All changes to a student registration is performed by submitting a 25 * RegistrationRequest. This request represents an overall transaction 26 * among a set of RegistrationRequestItems (register, add, drop, 27 * update, etc.) 28 * 29 * For every transactional operation from the application, a new 30 * Request is created. 31 * 32 * RegistrationRequests are created and persisted separate from the 33 * submission and processing. Updating a RegistrationRequest prior to 34 * submission can create the concept of a "cart." Once the 35 * RegistrationRequest is submitted for porcessing it cannot be 36 * updated. 37 * 38 * The RegistrationRequest State represents the state of this request 39 * e.g. NEW, DRAFT, SUBMITTED, FAILED. 40 * 41 * @author Kuali Student Team (sambit) 42 */ 43 44 public interface RegistrationRequest 45 extends IdEntity { 46 47 /** 48 * The person who is making this request. For a student 49 * self-registering, the requestor is the Id of the student. In 50 * the case of an adminsitrator registering or updating a 51 * registration on behalf of a student, the requestor is the 52 * administrator. 53 * 54 * In either case, the student Id is included in each 55 * RegistrationRequestItem. 56 * 57 * @name Requestor Id 58 * @required 59 * @readOnly on update 60 * @impl LprTransaction.requestingPersonId 61 */ 62 public String getRequestorId(); 63 64 /** 65 * The Term in which this registration takes place. 66 * 67 * @name Term Id 68 * @required 69 * @readOnly on update 70 * @impl LprTransaction.atpId 71 */ 72 public String getTermId(); 73 74 /** 75 * A list of specific registration request items. 76 * 77 * @name Registration Request Items 78 * @impl LprTransaction.LprTransactionItems 79 */ 80 public List<? extends RegistrationRequestItem> getRegistrationRequestItems(); 81 }