1 /*
2 * Copyright 2010 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.courseoffering.infc;
18
19 import java.util.List;
20
21 import org.kuali.student.r2.core.statement.dto.StatementTreeViewInfo;
22 import org.kuali.student.r2.common.infc.IdEntity;
23
24 /**
25 * Information about a single seat pool that can be associated with
26 * either a course offering or registration group. Seat pools provides
27 * a handle for statements that will be used to created enrollment
28 * restrictions based on capacity. Seat pools are ordered using rank
29 * to enable the most restrictive pools to be filled first.
30 *
31 * @author Kamal
32 */
33
34 public interface SeatPoolDefinition
35 extends IdEntity {
36
37 /**
38 * When this seat pool definition expires. A seat pool whose state
39 * is active is active once the registration period for the
40 * related ActivityOffering begins. The restriction may expire
41 * before the end of the registration period on a Milestone. The
42 * Milestone is determined by the Expiration Milestone Type Key on
43 * the ATP for the registration period.
44 *
45 * @name Expiration Milestone Type Key
46 */
47 public String getExpirationMilestoneTypeKey();
48
49 /**
50 * Tests if the seat limit is an absolute number or a percentage
51 * of MaximumEnrollment in the ActivityOffering.
52 *
53 * @name Is Percentage
54 * @required
55 */
56 public Boolean getIsPercentage();
57
58 /**
59 * The limit on the number of seats in this pool. The number may
60 * be expressed as an absolute number or as an integer
61 * representing a percentage (0-100) based on the IsPercentage
62 * flag.
63 *
64 * @name Seat Limit
65 */
66 public Integer getSeatLimit();
67
68 /**
69 * Indicates the order in which this seat pool will be processed
70 * during registration. During registration students should be
71 * assigned to a seat pool with the lowest possible rank to which
72 * he or she meets the restriction requirements.
73 *
74 * @name Processing Priority
75 */
76 public Integer getProcessingPriority();
77
78 /**
79 * The Population to which this seat pool applies.
80 *
81 * @name Population Id
82 */
83 public String getPopulationId();
84 }