org.sakaiproject.api.edu.coursemanagement
Interface CourseOffering

All Superinterfaces:
Persistable
All Known Implementing Classes:
CourseOfferingImpl

public interface CourseOffering
extends Persistable

A Course Offering can occur in a specific term and have a grade type, status type, etc. A course offering is a canonical course associated with a specific term. It may be concrete where the canonical is abstract. The roster associated with a course offering allows sections to be aggregated.

Author:
Mark Norton

Method Summary
 void addDefaultLeader(ParticipationRecord participationRecord)
          Add a participation record as an instructor of this section.
 void addEquivalent(String courseOfferingUuid)
          Add the course offering given by its uuid to the set of equivalent courses.
 void addOtherPerson(ParticipationRecord participantRecord)
          Add a person to the other set.
 Set getAggregatedEnrollments(CourseSectionType type)
          Get an aggregated set of all students enrolled in this course.
 Set getAllEnrollments()
          Get an aggregated set of all students enrolled of a given course section type (e.g. lecture, lab, seminar) in this course.
 String getCanonicalCourse()
          Get the uuid of the canonical course that this offering represents.
 Set getCourseSections()
          Get the set of course sections that represent this offering.
 Set getDefaultLeaders()
          Get the set of participation for the instructors of a given course section type (e.g. lecture, lab, seminar) in this course.
 String getDefaultLocation()
          Get the location of a course section.
 String getDefaultMeetingTime()
          Get the default meeting time of a course section.
 String getDefaultSchedule()
          Get the default schedule of a course section.
 String getDescription()
          Get the description of this course offering.
 EnrollmentType getEnrollmentType()
          Get the entrollment type for this course.
 Set getEquivalents()
          Get a set of equivalent course offering uuids.
 Integer getMaximumStudents()
          Get the maxiumum number of students permitted to enroll in this course offering.
 String getOfferingNumber()
          Get the course number.
 CourseOfferingStatusType getOfferingStatus()
          Get the course ofering status.
 CourseOfferingType getOfferingType()
          Get the course offering type.
 Set getOtherPeople()
          Get a set of other people associated with this course offering.
 Set getSectionsByType(CourseSectionType type)
          Get a set of uuids of sections of a given course section type, derived from this course offering.
 Session getSession()
          Get the term of this course offering.
 String getTitle()
          Get the title of a course offering as it might appear in a course catalog.
 Boolean isCrossListed()
          Return true if this course offering is cross listed.
 void removeCourseSection(String sectionUuid)
          Remove a course section from this offering set.
 void removeDefaultLeader(String agentUuid)
          Remove a leader given an agent uuid.
 void removeEquivalent(String courseOfferingUuid)
          Remove the course offering given by its uuid from the set of equivalent courses.
 void removeOtherPerson(String participantUuid)
          Remove a person from the other set given an agent uuid.
 void setCanonicalCourse(String canonicalCourseUuid)
          Set the uuid of the canonical course that this offering represents.
 void setDefaultLocation(String location)
          Set the default location of this course section.
 void setDefaultMeetingTime(String meetingTime)
          Set the default meeting time of this course section.
 void setDefaultSchedule(String schedule)
          Set the default schedule of this course section.
 void setDescription(String description)
          Set the description of this course offering.
 void setIsCrossListed(Boolean isCrossListed)
          Set cross listing flag.
 void setMaximumStudents(Integer maxStudents)
          Set the maximum number of students permitted to entroll in this course offering.
 void setOfferingNumber(String offeringNumber)
          Set the offering number.
 void setOfferingStatus(CourseOfferingStatusType status)
          Set the course offering status type.
 void setOfferingType(CourseOfferingType type)
          Set the course offering type.
 void setSession(Session term)
          Set the term of this course offering.
 void setTitle(String title)
          Set the title of a course offering as it might appear in a course catalog.
 
Methods inherited from interface org.sakaiproject.api.common.manager.Persistable
getCreatedBy, getCreatedDate, getLastModifiedBy, getLastModifiedDate, getUuid
 

Method Detail

getTitle

public String getTitle()
Get the title of a course offering as it might appear in a course catalog.

Returns:
the title of the course offering.

setTitle

public void setTitle(String title)
Set the title of a course offering as it might appear in a course catalog.

Parameters:
title -

getDescription

public String getDescription()
Get the description of this course offering.

Returns:
the desription of the course offering.

setDescription

public void setDescription(String description)
Set the description of this course offering.

Parameters:
description -

getOfferingNumber

public String getOfferingNumber()
Get the course number. There are no restrictions on how this number is formatted.

Returns:
offeringNnumber

setOfferingNumber

public void setOfferingNumber(String offeringNumber)
Set the offering number. There are no restirctions on how this number is formatted.

Parameters:
offeringNumber -

getSession

public Session getSession()
Get the term of this course offering.

Returns:
the term

setSession

public void setSession(Session term)
Set the term of this course offering.

Parameters:
term -

isCrossListed

public Boolean isCrossListed()
Return true if this course offering is cross listed. A course is cross listed if the set of equivalent courses is non-empty.

Returns:
true if cross listed.

setIsCrossListed

public void setIsCrossListed(Boolean isCrossListed)
Set cross listing flag.

Parameters:
isCrossListed -

getEquivalents

public Set getEquivalents()
Get a set of equivalent course offering uuids. This is one way to represent cross seting in a set of courses.

Returns:
Set of canonical course uuids.

addEquivalent

public void addEquivalent(String courseOfferingUuid)
Add the course offering given by its uuid to the set of equivalent courses.

Parameters:
courseOfferingUuid -

removeEquivalent

public void removeEquivalent(String courseOfferingUuid)
Remove the course offering given by its uuid from the set of equivalent courses.

Parameters:
courseOfferingUuid -

getMaximumStudents

public Integer getMaximumStudents()
Get the maxiumum number of students permitted to enroll in this course offering.

Returns:
maxiumum number of students allowed

setMaximumStudents

public void setMaximumStudents(Integer maxStudents)
Set the maximum number of students permitted to entroll in this course offering.

Parameters:
maxStudents -

getOfferingType

public CourseOfferingType getOfferingType()
Get the course offering type. This type indicates what kind of offering is being made.

Returns:
course offering type.

setOfferingType

public void setOfferingType(CourseOfferingType type)
Set the course offering type.

Parameters:
type -

getOfferingStatus

public CourseOfferingStatusType getOfferingStatus()
Get the course ofering status. The course offering status might be open, closed, wait-seted, etc.

Returns:
status

setOfferingStatus

public void setOfferingStatus(CourseOfferingStatusType status)
Set the course offering status type.

Parameters:
status -

getCourseSections

public Set getCourseSections()
Get the set of course sections that represent this offering.

Returns:
Set of course sections

removeCourseSection

public void removeCourseSection(String sectionUuid)
Remove a course section from this offering set.

Parameters:
sectionUuid -

getDefaultLeaders

public Set getDefaultLeaders()
Get the set of participation for the instructors of a given course section type (e.g. lecture, lab, seminar) in this course. While most sections will have only one instructor, provisions are made for multiple instructors.

Returns:
defaultLeaderSet

addDefaultLeader

public void addDefaultLeader(ParticipationRecord participationRecord)
Add a participation record as an instructor of this section.

Parameters:
participationRecord -

removeDefaultLeader

public void removeDefaultLeader(String agentUuid)
Remove a leader given an agent uuid. The participation record containing this uuid will be removed.

Parameters:
agentUuid -

getOtherPeople

public Set getOtherPeople()
Get a set of other people associated with this course offering. This set might include teaching assistance, lab supervisors, translators, etc. The set elements are participation uuids.

Returns:
otherPeopleSet

addOtherPerson

public void addOtherPerson(ParticipationRecord participantRecord)
Add a person to the other set.

Parameters:
participantRecord -

removeOtherPerson

public void removeOtherPerson(String participantUuid)
Remove a person from the other set given an agent uuid. The participation record associated with this uuid will be removed from the set of other people.

Parameters:
participantUuid -

getAllEnrollments

public Set getAllEnrollments()
Get an aggregated set of all students enrolled of a given course section type (e.g. lecture, lab, seminar) in this course. This is a set of Enrollment records drawn from sections under this offering. Aggregated enrollment is a simple way to find all people enrolled in any section based on this course offering.

Returns:
Set of enrollment records.

getAggregatedEnrollments

public Set getAggregatedEnrollments(CourseSectionType type)
Get an aggregated set of all students enrolled in this course. This is a set of Enrollment records drawn from sections under this offering. Aggregated enrollment is a simple way to find all people enrolled in any section based on this course offering.

Returns:
aggregated set of enrollment records.

getEnrollmentType

public EnrollmentType getEnrollmentType()
Get the entrollment type for this course. Since a course offering enrollment is always an aggregate, this will always return an EnrollmentType of aggregate.

Returns:
entrollment type.

getCanonicalCourse

public String getCanonicalCourse()
Get the uuid of the canonical course that this offering represents.

Returns:
uuid of canonical course

setCanonicalCourse

public void setCanonicalCourse(String canonicalCourseUuid)
Set the uuid of the canonical course that this offering represents.

Parameters:
canonicalCourseUuid -

getSectionsByType

public Set getSectionsByType(CourseSectionType type)
Get a set of uuids of sections of a given course section type, derived from this course offering. Each of these sections is a real class with a location, teacher, students, etc.

Returns:
Set of course section uuids.

getDefaultLocation

public String getDefaultLocation()
Get the location of a course section.

Returns:
the default location of the course section.

setDefaultLocation

public void setDefaultLocation(String location)
Set the default location of this course section.

Parameters:
location -

getDefaultMeetingTime

public String getDefaultMeetingTime()
Get the default meeting time of a course section.

Returns:
the meeting time of the course section.

setDefaultMeetingTime

public void setDefaultMeetingTime(String meetingTime)
Set the default meeting time of this course section.

Parameters:
meetingTime -

getDefaultSchedule

public String getDefaultSchedule()
Get the default schedule of a course section.

Returns:
the schedule of the course section.

setDefaultSchedule

public void setDefaultSchedule(String schedule)
Set the default schedule of this course section.

Parameters:
schedule -