001package org.kuali.student.r2.lum.program.infc; 002 003import org.kuali.student.r2.lum.clu.infc.Accreditation; 004import org.kuali.student.r2.lum.clu.infc.CluInstructor; 005 006import java.util.List; 007import org.kuali.student.r2.lum.program.dto.CoreProgramInfo; 008 009/** 010 * Detailed information about a single major discipline program 011 * 012 * This represents a traditional undergraduate major or a graduate area of study 013 * that leads to a degree in a particular discipline. 014 */ 015public interface MajorDiscipline extends CommonWithProgramVariation { 016 017 /** 018 * Term when this major is next slated to be reviewed 019 * 020 * @name Next Review Period 021 */ 022 public String getNextReviewPeriod(); 023 024 /** 025 * Instructors associated with this Major. 026 * 027 * This may not be an exhaustive list, and instead may only be used to 028 * indicate potential instructors in publication. 029 * 030 * @name Published Instructors 031 */ 032 public List<? extends CluInstructor> getPublishedInstructors(); 033 034 /** 035 * Identifier of the credential program under which the major belongs 036 * 037 * @name Credential Program Id 038 */ 039 public String getCredentialProgramId(); 040 041 /** 042 * External Agencies that accredit this major 043 * 044 * @name Accrediting Agencies 045 */ 046 public List<? extends Accreditation> getAccreditingAgencies(); 047 048 /** 049 * Program variations for the Major 050 * 051 * Also called specializations or tracks. 052 * 053 * @name Variations 054 */ 055 public List<? extends ProgramVariation> getVariations(); 056 057 /** 058 * The core program requirements associated with this organizational unit 059 * 060 * Also called School Core or School Wide Common Requirements. 061 * 062 * @name Organization Core Program 063 */ 064 public CoreProgramInfo getOrgCoreProgram(); 065}