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 import org.kuali.student.enrollment.courseregistration.dto.RegistrationRequestItemInfo; 21 22 import org.kuali.student.r2.common.dto.ValidationResultInfo; 23 import org.kuali.student.r2.common.infc.IdEntity; 24 25 /** 26 * All changes to a student registration is performed by submitting a 27 * RegistrationRequest. This request represents an overall transaction 28 * among a set of RegistrationRequestItems (register, add, drop, 29 * update, etc.) 30 * 31 * For every transactional operation from the application, a new 32 * Request is created. 33 * 34 * RegistrationRequests are created and persisted separate from the 35 * submission and processing. Updating a RegistrationRequest prior to 36 * submission can create the concept of a "cart." Once the 37 * RegistrationRequest is submitted for porcessing it cannot be 38 * updated. 39 * 40 * The RegistrationRequest State represents the state of this request 41 * e.g. NEW, DRAFT, SUBMITTED, FAILED. 42 * 43 * @author Kuali Student Team (sambit) 44 */ 45 46 public interface RegistrationRequest 47 extends IdEntity { 48 49 /** 50 * The person who is making this request. For a student 51 * self-registering, the requestor is the Id of the student. In 52 * the case of an adminsitrator registering or updating a 53 * registration on behalf of a student, the requestor is the 54 * administrator. 55 * 56 * In either case, the student Id is included in each 57 * RegistrationRequestItem. 58 * 59 * @name Requestor Id 60 * @required 61 * @readOnly on update 62 * @impl LprTransaction.requestingPersonId 63 */ 64 public String getRequestorId(); 65 66 /** 67 * The Term in which this registration takes place. 68 * 69 * @name Term Id 70 * @required 71 * @readOnly on update 72 * @impl LprTransaction.atpId 73 */ 74 public String getTermId(); 75 76 /** 77 * Items that compose the Registration Request. 78 * 79 * @name Registration Request Items 80 * @impl LprTransactoinItem 81 * @return list of validation results 82 */ 83 public List<? extends RegistrationRequestItem> getRegistrationRequestItems(); 84 85 /** 86 * Results messages that occur when this item is submitted. 87 * 88 * @name Validation Results 89 * @readOnly 90 * @return list of validation results 91 */ 92 public List<ValidationResultInfo> getValidationResults(); 93 }