001/* 002 * Copyright 2011 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the 005 * "License"); you may not use this file except in compliance with the 006 * License. You may obtain a copy of the License at 007 * 008 * http://www.osedu.org/licenses/ECL-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 013 * implied. See the License for the specific language governing 014 * permissions and limitations under the License. 015 */ 016 017package org.kuali.student.enrollment.courseregistration.infc; 018 019import java.util.List; 020 021import org.kuali.student.r2.common.infc.IdEntity; 022 023/** 024 * All changes to a student registration is performed by submitting a 025 * RegistrationRequest. This request represents an overall transaction 026 * among a set of RegistrationRequestItems (register, add, drop, 027 * update, etc.) 028 * 029 * For every transactional operation from the application, a new 030 * Request is created. 031 * 032 * RegistrationRequests are created and persisted separate from the 033 * submission and processing. Updating a RegistrationRequest prior to 034 * submission can create the concept of a "cart." Once the 035 * RegistrationRequest is submitted for porcessing it cannot be 036 * updated. 037 * 038 * The RegistrationRequest State represents the state of this request 039 * e.g. NEW, DRAFT, SUBMITTED, FAILED. 040 * 041 * @author Kuali Student Team (sambit) 042 */ 043 044public interface RegistrationRequest 045 extends IdEntity { 046 047 /** 048 * The person who is making this request. For a student 049 * self-registering, the requestor is the Id of the student. In 050 * the case of an adminsitrator registering or updating a 051 * registration on behalf of a student, the requestor is the 052 * administrator. 053 * 054 * In either case, the student Id is included in each 055 * RegistrationRequestItem. 056 * 057 * @name Requestor Id 058 * @required 059 * @readOnly on update 060 * @impl LprTransaction.requestingPersonId 061 */ 062 public String getRequestorId(); 063 064 /** 065 * The Term in which this registration takes place. 066 * 067 * @name Term Id 068 * @required 069 * @readOnly on update 070 * @impl LprTransaction.atpId 071 */ 072 public String getTermId(); 073 074 /** 075 * A list of specific registration request items. 076 * 077 * @name Registration Request Items 078 * @impl LprTransaction.LprTransactionItems 079 */ 080 public List<? extends RegistrationRequestItem> getRegistrationRequestItems(); 081}