View Javadoc

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  }