Coverage Report - org.kuali.student.r2.lum.course.infc.Course
 
Classes in this File Line Coverage Branch Coverage Complexity
Course
N/A
N/A
1
 
 1  
 package org.kuali.student.r2.lum.course.infc;
 2  
 
 3  
 import java.util.Date;
 4  
 import java.util.List;
 5  
 
 6  
 import org.kuali.student.r2.common.infc.Amount;
 7  
 import org.kuali.student.r2.common.infc.IdEntity;
 8  
 import org.kuali.student.r2.common.infc.RichText;
 9  
 import org.kuali.student.r2.common.infc.TimeAmount;
 10  
 import org.kuali.student.r2.core.versionmanagement.infc.Version;
 11  
 
 12  
 import org.kuali.student.r2.lum.clu.infc.CluInstructor;
 13  
 
 14  
 /**
 15  
  * Detailed information about a single course. For specific usage, check the
 16  
  * specific service(s) implementation(s)
 17  
  **/
 18  
 
 19  
 public interface Course extends IdEntity {
 20  
 
 21  
     /**
 22  
      * Identifier used to officially reference or publish the
 23  
      * course.
 24  
      * 
 25  
      * The code is typically unique within a specified context or time period but 
 26  
      * it is not intended as a database key or id.
 27  
      * 
 28  
      * It may have an internal structure that each Institution may
 29  
      * want to enforce. This structure may be composed from the other parts of
 30  
      * the structure such as Level amp; Division, but may include items such as
 31  
      * the type of the course and whether it has a lab or not.
 32  
      * 
 33  
      * @name code
 34  
      */
 35  
     public String getCode();
 36  
 
 37  
     /**
 38  
      * The "extra" portion of the code, which usually corresponds with the most
 39  
      * detailed part of the number. Ex. at MIT we might map Division to subject
 40  
      * area(Ex:6) but overall we need to say the code is 6.120. This field would
 41  
      * represent the 120 part.
 42  
      * 
 43  
      * @name Course Number Suffix
 44  
      */
 45  
     public String getCourseNumberSuffix();
 46  
 
 47  
     /**
 48  
      * A code that indicates what level 100, 200 or upper division, lower
 49  
      * division etc
 50  
      * 
 51  
      * @name Level
 52  
      */
 53  
     public String getLevel();
 54  
 
 55  
     /**
 56  
      * Abbreviated name of the Course
 57  
      * 
 58  
      * @name Course Title
 59  
      */
 60  
     public String getCourseTitle();
 61  
 
 62  
     /**
 63  
      * Information related to the official identification of the credit course,
 64  
      * typically in human readable form. Used to officially reference or
 65  
      * publish.
 66  
      * 
 67  
      * @name Transcript Title
 68  
      */
 69  
     public String getTranscriptTitle();
 70  
 
 71  
     /**
 72  
      * Course Formats
 73  
      * 
 74  
      * @name Formats
 75  
      */
 76  
     public List<? extends Format> getFormats();
 77  
 
 78  
     /**
 79  
      * Terms in which this Course is typically offered.
 80  
      * 
 81  
      * @name Terms Offered
 82  
      */
 83  
     public List<String> getTermsOffered();
 84  
 
 85  
     /**
 86  
      * The standard duration of the Course.
 87  
      * 
 88  
      * @name Duration
 89  
      */
 90  
     public TimeAmount getDuration();
 91  
 
 92  
     /**
 93  
      * Joint Courses
 94  
      * 
 95  
      * @name Joints
 96  
      */
 97  
     public List<? extends CourseJoint> getJoints();
 98  
 
 99  
     /**
 100  
      * Cross Listed Courses
 101  
      * 
 102  
      * @name Cross Listings
 103  
      */
 104  
     public List<? extends CourseCrossListing> getCrossListings();
 105  
 
 106  
     /**
 107  
      * Variations
 108  
      * 
 109  
      * @name Variations 
 110  
      */
 111  
     public List<? extends CourseVariation> getVariations();
 112  
 
 113  
     /**
 114  
      * The Study Subject Area is used to identify the area of study associated
 115  
      * with the course. It may be a general study area (e.g. Chemistry) or very
 116  
      * specific (e.g. Naval Architecture).
 117  
      * 
 118  
      * @name Subject Area
 119  
      */
 120  
     public String getSubjectArea();
 121  
 
 122  
     /**
 123  
      * Places where this course might be offered
 124  
      * 
 125  
      * @name Campus Locations
 126  
      */
 127  
     public List<String> getCampusLocations();
 128  
 
 129  
     /**
 130  
      * The expected level of out of class time commitment between the student
 131  
      * and the course.
 132  
      * 
 133  
      * @name Out of Class Hours
 134  
      */
 135  
     public Amount getOutOfClassHours();
 136  
 
 137  
     /**
 138  
      * Primary potential instructor for the course. This is primarily for use in
 139  
      * advertising the course and may not be the actual instructor.
 140  
      * 
 141  
      * @name Primary Instructor
 142  
      */
 143  
     public CluInstructor getPrimaryInstructor();
 144  
 
 145  
     /**
 146  
      * Instructors associated with this course.
 147  
      * 
 148  
      * @name Instructors
 149  
      */
 150  
     public List<? extends CluInstructor> getInstructors();
 151  
 
 152  
     /**
 153  
      * Units Responsible for Deploying this course
 154  
      * @name Units Deployment
 155  
      */
 156  
     public List<String> getUnitsDeployment();
 157  
 
 158  
     /**
 159  
      * Narrative description of overall course fee justification.
 160  
      * 
 161  
      * @name Fee Justification
 162  
      */
 163  
     public RichText getFeeJustification();
 164  
 
 165  
     /**
 166  
      * Units Responsible for overseeing the content of this course
 167  
      * @name Units Content Owner
 168  
      */
 169  
     public List<String> getUnitsContentOwner();
 170  
 
 171  
     /**
 172  
      * Fees information associated with this Course.
 173  
      * 
 174  
      * @name Fees
 175  
      */
 176  
     public List<? extends CourseFee> getFees();
 177  
 
 178  
     /**
 179  
      * Revenue information associated with this Course.
 180  
      * 
 181  
      * @name Revenues
 182  
      */
 183  
     public List<? extends CourseRevenue> getRevenues();
 184  
 
 185  
     /**
 186  
      * Expenditure information associated with this Course.
 187  
      * 
 188  
      * @name Expenditure
 189  
      */
 190  
     public CourseExpenditure getExpenditure();
 191  
 
 192  
     /**
 193  
      * Learning Objectives associated with this Course.
 194  
      * 
 195  
      * @name Course Specific Learning Objectives
 196  
      */
 197  
     public List<? extends LoDisplay> getCourseSpecificLOs();
 198  
 
 199  
     /**
 200  
      * Grading options available for the course
 201  
      * 
 202  
      * @name Grading Options
 203  
      */
 204  
     public List<String> getGradingOptions();
 205  
 
 206  
     /**
 207  
      * Credit outcomes from taking the course
 208  
      * 
 209  
      * @name Credit Options
 210  
      */
 211  
     public List<String> getCreditOptions();
 212  
 
 213  
     /**
 214  
      * Flag to indicate the course as a special topics course
 215  
      * 
 216  
      * @name Special Topics Course?
 217  
      */
 218  
     public Boolean isSpecialTopicsCourse();
 219  
 
 220  
     /**
 221  
      * Flag to indicate a one-time or pilot course, which is likely to have
 222  
      * expedited approval process
 223  
      * 
 224  
      * @name Pilot Course?
 225  
      */
 226  
     public Boolean isPilotCourse();
 227  
 
 228  
     /**
 229  
      * The first academic time period that this Course would be effective.
 230  
      * 
 231  
      * @name Start Term
 232  
      */
 233  
     public String getStartTerm();
 234  
 
 235  
     /**
 236  
      * The last academic time period that this Course would be effective.
 237  
      * 
 238  
      * @name End Term
 239  
      */
 240  
     public String getEndTerm();
 241  
 
 242  
     /**
 243  
      * Date and time the Course became effective. This is a similar concept to
 244  
      * the effective date on enumerated values. When an expiration date has been
 245  
      * specified, this field must be less than or equal to the expiration date.
 246  
      * 
 247  
      * @name Effective Date
 248  
      */
 249  
     public Date getEffectiveDate();
 250  
 
 251  
     /**
 252  
      * Date and time that this Course expires. This is a similar concept to the
 253  
      * expiration date on enumerated values. If specified, this should be
 254  
      * greater than or equal to the effective date. If this field is not
 255  
      * specified, then no expiration date has been currently defined and should
 256  
      * automatically be considered greater than the effective date.
 257  
      * 
 258  
      * @name Expiration Date
 259  
      */
 260  
     public Date getExpirationDate();
 261  
 
 262  
     /**
 263  
      * Version of this course
 264  
      * 
 265  
      * @name Version
 266  
      */
 267  
     public Version getVersionInfo ();
 268  
 
 269  
 }