The API models a user's interaction with a course load as consisting of four main stages:
After these steps, the generated timetables can be examined and sorted according to various criteria.
Depending on which of these steps have been performed, the course load is considered to be in a particular state called the course load state. There are five possible course load states:
none of the steps have been performed
the study session has been selected, but courses have not yet been selected
courses have been selected, but configurations have not yet been selected
configurations have been selected, but timetables have not yet been generated
timetables have been generated
Some API functions can only be called in a given course load state. The current
course load state of a course load can be queried using the CourseLoad
::GetState()
API function.