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  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  }