private static void load() throws Exception {
    BufferedReader courseReader =
        new BufferedReader(new InputStreamReader(new FileInputStream(file_course)));
    // #Grade 10;Advanced Placement;Individually Paced;AP Calculus AB;M
    String courseLine;
    while ((courseLine = courseReader.readLine()) != null) {
      String[] courseParts = courseLine.split(";");
      if (courseParts.length < 6) {
        String grade = courseParts[0];
        String topic = courseParts[1];
        String pacing = courseParts[2];
        String name = courseParts[3];
        String marks = courseParts[4];

        SLCCourse course = new SLCCourse();
        course.setId((grade + topic + name).replace("[ ,]", "-"));
        course.setCourseTitle(name);
        course.setNumberOfParts(getRand() % 3 + 1);
        course.setCourseLevel(CourseLevelType.GENERAL_OR_REGULAR);
        course.setCourseLevelCharacteristics(new CourseLevelCharacteristicsType());
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.ADVANCED);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.ADVANCED_PLACEMENT);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.CORE_SUBJECT);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.CORRESPONDENCE);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.CTE);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.DISTANCE_LEARNING);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.DUAL_CREDIT);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.GRADUATION_CREDIT);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.HONORS);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.IB_COURSE);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.MAGNET);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.PRE_AP);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.PRE_IB);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.REMEDIAL);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.STUDENTS_WITH_DISABILITIES);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.BASIC);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.GENERAL);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.GIFTED_AND_TALENTED);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.COLLEGE_LEVEL);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.ENGLISH_LANGUAGE_LEARNER);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.UNTRACKED);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.ACCEPTED_AS_HIGH_SCHOOL_EQUIVALENT);
        course
            .getCourseLevelCharacteristics()
            .getCourseLevelCharacteristic()
            .add(CourseLevelCharacteristicItemType.OTHER);

        course.setGradesOffered(new GradeLevelsType());
        if (grade.trim().equals("Grade 1")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.FIRST_GRADE);
          grade1Courses.add(course);
        } else if (grade.trim().equals("Grade 2")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.SECOND_GRADE);
          grade2Courses.add(course);
        } else if (grade.trim().equals("Grade 3")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.THIRD_GRADE);
          grade3Courses.add(course);
        } else if (grade.trim().equals("Grade 4")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.FOURTH_GRADE);
          grade4Courses.add(course);
        } else if (grade.trim().equals("Grade 5")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.FIFTH_GRADE);
          grade5Courses.add(course);
        } else if (grade.trim().equals("Grade 6")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.SIXTH_GRADE);
          grade6Courses.add(course);
        } else if (grade.trim().equals("Grade 7")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.SEVENTH_GRADE);
          grade7Courses.add(course);
        } else if (grade.trim().equals("Grade 8")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.EIGHTH_GRADE);
          grade8Courses.add(course);
        } else if (grade.trim().equals("Grade 9")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.NINTH_GRADE);
          grade9Courses.add(course);
        } else if (grade.trim().equals("Grade 10")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.TENTH_GRADE);
          grade10Courses.add(course);
        } else if (grade.trim().equals("Grade 11")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.ELEVENTH_GRADE);
          grade11Courses.add(course);
        } else if (grade.trim().equals("Grade 12")) {
          course.getGradesOffered().getGradeLevel().add(GradeLevelType.TWELFTH_GRADE);
          grade12Courses.add(course);
        }

        course.setSubjectArea(AcademicSubjectType.OTHER);
        course.setCourseDescription(name);

        course.setDateCourseAdopted("2011-03-04");

        course.setHighSchoolCourseRequirement(rand.nextBoolean());
        course.setCourseGPAApplicability(CourseGPAApplicabilityType.APPLICABLE);
        int defBy = getRand() % 3;
        if (defBy == 0) course.setCourseDefinedBy(CourseDefinedByType.NATIONAL_ORGANIZATION);
        else if (defBy == 1) course.setCourseDefinedBy(CourseDefinedByType.LEA);
        else course.setCourseDefinedBy(CourseDefinedByType.SEA);

        Credits credits = new Credits();
        credits.setCredit(new BigDecimal(getRand() % 5));
        credits.setCreditConversion(new BigDecimal(getRand() % 5));
        int cType = getRand() % 7;
        if (cType == 0) credits.setCreditType(CreditType.CARNEGIE_UNIT);
        else if (cType == 1) credits.setCreditType(CreditType.NINE_MONTH_YEAR_HOUR_CREDIT);
        else if (cType == 2) credits.setCreditType(CreditType.OTHER);
        else if (cType == 3) credits.setCreditType(CreditType.QUARTER_HOUR_CREDIT);
        else if (cType == 4) credits.setCreditType(CreditType.SEMESTER_HOUR_CREDIT);
        else if (cType == 5) credits.setCreditType(CreditType.TRIMESTER_HOUR_CREDIT);
        else if (cType == 6) credits.setCreditType(CreditType.TWELVE_MONTH_YEAR_HOUR_CREDIT);

        course.setMinimumAvailableCredit(credits);
        course.setMaximumAvailableCredit(credits);
        int pType = getRand() % 3;
        if (pType == 0)
          course.setCareerPathway(CareerPathwayType.ARTS_A_V_TECHNOLOGY_AND_COMMUNICATIONS);
        else if (pType == 1)
          course.setCareerPathway(CareerPathwayType.BUSINESS_MANAGEMENT_AND_ADMINISTRATION);
        else if (pType == 2) course.setCareerPathway(CareerPathwayType.EDUCATION_AND_TRAINING);

        // course.setEducationOrganizationReference(EducationalOrgReferenceType);
        // course.getLearningObjectiveReference().add(LearningObjectiveReferenceType);
        // course.getCompetencyLevels().add(CompetencyLevelDescriptorType)
      } else {
        log.warn(file_course + ": Invalid line [" + courseLine + "]. Less than 5 components.");
        System.out.println("Ignoring line[" + courseLine + "].");
      }
    }
  }