package com.plannaplan.configutils; import java.util.Iterator; import com.plannaplan.entities.Course; import com.plannaplan.entities.Lecturer; import com.plannaplan.models.FileData; import com.plannaplan.services.CourseService; import com.plannaplan.services.GroupService; import com.plannaplan.services.LecturerService; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; public class FileToDatabaseMigrator { public static String LECTURER_NAME_STRING = "imie"; public static String LECTURER_SURNAME_STRING = "nazwisko"; public static String LECTURER_TITLE_STRING = "tytul"; public static String COURSE_SYMBOL_STRING = "sym"; public static String COURSE_NAME_STRING = "nazwa"; LecturerService lecturerService; CourseService courseService; GroupService groupService; public FileToDatabaseMigrator(LecturerService lecturerService, CourseService courseService, GroupService groupService) { this.lecturerService = lecturerService; this.groupService = groupService; this.courseService = courseService; } public void migrate(FileData data) { Iterator rows = data.getRows(); int course_name_index = data.getIndexOf(FileToDatabaseMigrator.COURSE_NAME_STRING); int sym_index = data.getIndexOf(FileToDatabaseMigrator.COURSE_SYMBOL_STRING); int title_index = data.getIndexOf(FileToDatabaseMigrator.LECTURER_TITLE_STRING); int surname_index = data.getIndexOf(FileToDatabaseMigrator.LECTURER_SURNAME_STRING); int name_index = data.getIndexOf(FileToDatabaseMigrator.LECTURER_NAME_STRING); while (rows.hasNext()) { Row row = rows.next(); Cell course_name_cell = row.getCell(course_name_index); Cell sym = row.getCell(sym_index); Cell title_cell = row.getCell(title_index); Cell name_cell = row.getCell(name_index); Cell surname_cell = row.getCell(surname_index); String lecturer_title = ""; String lecturer_surname = ""; String lecturer_name = ""; String course_name = course_name_cell.toString(); String sym_str = sym.toString(); Course course = this.courseService.getCourseByName(course_name); if (course == null) { course = new Course(); course.setName(course_name); course.setSymbol(sym_str); } courseService.save(course); if (title_cell != null) { lecturer_title = title_cell.toString(); } if (name_cell != null) { lecturer_name = name_cell.toString(); } if (surname_cell != null) { lecturer_surname = surname_cell.toString(); } if (lecturerService.getLecturer(lecturer_title, lecturer_name, lecturer_surname) == null) { Lecturer newLecturer = new Lecturer(lecturer_title, lecturer_name, lecturer_surname); lecturerService.save(newLecturer); } } } }