1 /*
2 * Copyright 2012 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 org.kuali.student.r2.common.infc.IdEntity;
20 import org.kuali.student.r2.core.scheduling.infc.ScheduleDisplay;
21
22 /**
23 * An adminsitrative view of the ActivityOffering.
24 *
25 * @author tom
26 */
27 public interface ActivityOfferingDisplay
28 extends IdEntity {
29
30 /**
31 * A display name for the Activity Offering Type.
32 *
33 * @name Activity Offering Type Display Name
34 * @readOnly
35 * @impl ActivityOffering.Type.Name
36 */
37 public String getTypeName();
38
39 /**
40 * A display name for the activity Offering State.
41 *
42 * @name Activity Offering State Display Name
43 * @readOnly
44 * @impl ActivityOffering.State.Name
45 */
46 public String getStateName();
47
48 /**
49 * Name of the course used in the college catalog. Initially
50 * copied from the course catalog but then, depending on the
51 * configuration it may be updatable. For regular courses this is
52 * not generally allowed to be updated on the offering, but for
53 * special topics courses this is often overridden to capture the
54 * particular topic being taught offered this term. Note: the
55 * configuration of the validation for titles is typically
56 * restricted to exclude line breaks. This may have to be loosened
57 * as some schools may want the particular topic to appear on a
58 * 2nd line. For example: SPECIAL TOPICS: AN EXPLORATION OF DEEP
59 * SPACE ARTIFACTS
60 *
61 * @name Course Offering Title
62 * @readOnly
63 * @impl ActivityOffering.FormatOffering.CourseOffering.Title
64 */
65 public String getCourseOfferingTitle();
66
67 /**
68 * Identifies the number of a course as reflected in the course
69 * catalog. This typically must be unique across all courses
70 * offered during that term. If the user wants to create two
71 * separate offerings for the same course they must modify this
72 * code to make it unique. For example: An on-line offering of the
73 * course might have an "O" appended to it to distinguish it from
74 * the face to face offering, i.e. ENG101 and ENG101O Initially
75 * copied from the course catalog but then, depending on the
76 * configuration it may be updatable. Often this field is
77 * configured so that it is not not directly updatable but rather
78 * is calculated from it's two constituent parts, the subject area
79 * and the course number suffix. For example: Subject Area = "ENG"
80 * and Suffix = "101" then code = "ENG101"
81 *
82 * @name Course Offering Code
83 * @readOnly
84 * @impl ActivityOffering.FormatOffering.CourseOffering.CourseOfferingCode
85 */
86 public String getCourseOfferingCode();
87
88 /**
89 * The Format Offering Id used to create this ActivityOffering.
90 *
91 * @name Format Offering Id
92 * @readOnly
93 * @impl ActivityOffering.FormatOffering.Id
94 */
95 public String getFormatOfferingId();
96
97 /**
98 * A display name for the Format Offering.
99 *
100 * @name Format Offering Display Name
101 * @readOnly
102 * @impl ActivityOffering.FormatOffering.Name
103 */
104 public String getFormatOfferingName();
105
106 /**
107 * Alphanumeric character that identifies the section of the
108 * course offering.
109 *
110 * @name Activity Offering Code
111 * @readOnly
112 * @impl ActivityOffering.ActivityOfferingCode
113 */
114 public String getActivityOfferingCode();
115
116 /**
117 * Gets the instructor of record for this ActivityOffering.
118 *
119 * @name Instructor Id
120 * @readOnly
121 * @impl ActivityOffering.OfferingInstructor.PersonId
122 */
123 public String getInstructorId();
124
125 /**
126 * Gets the name of the instructor of record for this
127 * ActivityOffering.
128 *
129 * @name Instructor Display Name
130 * @readOnly
131 * @impl ActivityOffering.OfferingInstructor.Person.name
132 */
133 public String getInstructorName();
134
135 /**
136 * Indicates that the Activity Offering is an Honors option
137 *
138 * @name Is Honors Offering
139 * @readOnly
140 * @impl 'H' icon displayed if true
141 */
142 public Boolean getIsHonorsOffering();
143
144 /**
145 * Gets the schedule information for this ActivityOffering
146 *
147 * @readOnly
148 * @impl Consult Scheduling service
149 */
150 public ScheduleDisplay getScheduleDisplay();
151
152 /**
153 * Total maximum number of "seats" or enrollment slots that can be filled
154 * for the offering. Calculated based on sum of all the maximum seats of
155 * primary activity type offerings
156 *
157 * @readOnly
158 */
159 public Integer getMaximumEnrollment();
160 }