package com.plannaplan.configutils; import java.util.Iterator; import com.plannaplan.entities.Course; import com.plannaplan.entities.Groups; 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 com.plannaplan.types.WeekDay; 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"; public static String GROUP_DAY_STRING = "dzien"; public static String GROUP_TIME_STRING = "godz_od"; public static String ROOM_STRING = "sala"; public static String CAPACITY_STRING = "Mc"; 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); int day_index = data.getIndexOf(FileToDatabaseMigrator.GROUP_DAY_STRING); int time_index = data.getIndexOf(FileToDatabaseMigrator.GROUP_TIME_STRING); int room_index = data.getIndexOf(FileToDatabaseMigrator.ROOM_STRING); int capacity_index = data.getIndexOf(FileToDatabaseMigrator.CAPACITY_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); Cell day_cell = row.getCell(day_index); Cell time_cell = row.getCell(time_index); Cell room_cell = row.getCell(room_index); Cell capacity_cell = row.getCell(capacity_index); String lecturer_title = ""; String lecturer_surname = ""; String lecturer_name = ""; String course_name = course_name_cell.toString(); String sym_str = sym.toString(); int day = (int) Double.parseDouble(day_cell.toString()); WeekDay group_day = WeekDay.getDay(day); String room = room_cell.toString(); int time = 480; int capacity = (int) Double.parseDouble(capacity_cell.toString()); Groups group = groupService.find(time, capacity, room); if (group == null) { group = new Groups(); group.setCapacity(capacity); group.setTime(time); group.setRoom(room); } groupService.save(group); 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); } } } }