public Course getCourse(String id) {
    Cursor cursor = dbadapter.getCourse(id);

    Course course = new Course(cursor.getString(cursor.getColumnIndex("key")));

    course.setTitle(cursor.getString(cursor.getColumnIndex("title")));
    course.setLevel(cursor.getString(cursor.getColumnIndex("level")));
    course.setSCQFLevel(cursor.getString(cursor.getColumnIndex("scqf_level")));
    course.setAcronym(cursor.getString(cursor.getColumnIndex("acronym")));
    course.setNormalYear(cursor.getString(cursor.getColumnIndex("normal_year")));
    course.setVisitorsOnly(cursor.getString(cursor.getColumnIndex("visitors_only")));
    course.setBlocks(cursor.getString(cursor.getColumnIndex("blocks")));
    course.setCO(cursor.getString(cursor.getColumnIndex("co")));
    course.setSY(cursor.getString(cursor.getColumnIndex("sy")));
    course.setFirstMeet(cursor.getString(cursor.getColumnIndex("first_meet")));
    course.setLocation(cursor.getString(cursor.getColumnIndex("location")));
    course.setSpecialArrangements(cursor.getString(cursor.getColumnIndex("special_arrangements")));

    course.setEvents(
        cursor.getString(cursor.getColumnIndex("start")),
        cursor.getString(cursor.getColumnIndex("end")),
        cursor.getString(cursor.getColumnIndex("alts")),
        cursor.getString(cursor.getColumnIndex("sites")));

    course.setOptions(cursor.getString(cursor.getColumnIndex("options")));

    Cursor cursor_ = dbadapter.getCollege(cursor.getString(cursor.getColumnIndex("college")));

    if (cursor_.getCount() > 0)
      course.setCollege(
          new College(
              cursor_.getString(cursor_.getColumnIndex("key")),
              cursor_.getString(cursor_.getColumnIndex("name"))));

    cursor_.close();
    cursor_ = dbadapter.getSchool(cursor.getString(cursor.getColumnIndex("school")));

    if (cursor_.getCount() > 0)
      course.setSchool(
          new School(
              cursor_.getString(cursor_.getColumnIndex("key")),
              cursor_.getString(cursor_.getColumnIndex("name"))));

    cursor_.close();
    cursor_ = dbadapter.getSubjectArea(cursor.getString(cursor.getColumnIndex("subject_area")));

    if (cursor_.getCount() > 0)
      course.setSubjectArea(
          new SubjectArea(
              cursor_.getString(cursor_.getColumnIndex("key")),
              cursor_.getString(cursor_.getColumnIndex("name"))));

    cursor_.close();

    cursor.close();

    return course;
  }