1 package org.kuali.student.r2.lum.program.infc;
2
3 import org.kuali.student.r2.lum.clu.infc.Accreditation;
4 import org.kuali.student.r2.lum.clu.infc.CluInstructor;
5
6 import java.util.List;
7 import org.kuali.student.r2.lum.program.dto.CoreProgramInfo;
8
9 /**
10 * Detailed information about a single major discipline program
11 *
12 * This represents a traditional undergraduate major or a graduate area of study
13 * that leads to a degree in a particular discipline.
14 */
15 public interface MajorDiscipline extends CommonWithProgramVariation {
16
17 /**
18 * Term when this major is next slated to be reviewed
19 *
20 * @name Next Review Period
21 */
22 public String getNextReviewPeriod();
23
24 /**
25 * Instructors associated with this Major.
26 *
27 * This may not be an exhaustive list, and instead may only be used to
28 * indicate potential instructors in publication.
29 *
30 * @name Published Instructors
31 */
32 public List<? extends CluInstructor> getPublishedInstructors();
33
34 /**
35 * Identifier of the credential program under which the major belongs
36 *
37 * @name Credential Program Id
38 */
39 public String getCredentialProgramId();
40
41 /**
42 * External Agencies that accredit this major
43 *
44 * @name Accrediting Agencies
45 */
46 public List<? extends Accreditation> getAccreditingAgencies();
47
48 /**
49 * Program variations for the Major
50 *
51 * Also called specializations or tracks.
52 *
53 * @name Variations
54 */
55 public List<? extends ProgramVariation> getVariations();
56
57 /**
58 * The core program requirements associated with this organizational unit
59 *
60 * Also called School Core or School Wide Common Requirements.
61 *
62 * @name Organization Core Program
63 */
64 public CoreProgramInfo getOrgCoreProgram();
65 }