CSVToGradeHistoryServiceImpl.java

package edu.ucsb.cs156.courses.services;

 import edu.ucsb.cs156.courses.entities.Grade;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;

 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.List;

 import java.io.FileReader;
 import com.opencsv.CSVReaderBuilder;
 import com.opencsv.CSVReader;

 @Slf4j
 @Service
 public class CSVToGradeHistoryServiceImpl implements CSVToGradeHistoryService {

     @Override
     public List<Grade> parse(Reader reader) throws Exception {
         List<Grade> gradeHistoryList = new ArrayList<Grade>();
         log.info("Parsing CSV file with grade history... ");
         CSVReader csvReader = new CSVReader(reader);
         List<String[]> myEntries = csvReader.readAll();
         for (String[] row : myEntries) {
             Grade grade =  Grade.builder()
             .quarter(row[0])
             .courseLevel(row[1])
             .courseName(row[2])
             .Instructor(row[3])
             .grade(row[4])
             .studentCount(Integer.parseInt(row[5]))
             .build();
             log.info("Parsed: " + grade.toString());
             gradeHistoryList.add(grade);
         }
         csvReader.close();
         return gradeHistoryList;
     }

 }