private Employee convertEmployeeFormToEmployee(EmployeeForm employeeForm) { if (employeeForm.getPosition() == Position.Cook) { Cook employee = new Cook(); List<CookedDishes> cookedDishes = new ArrayList<>(); List<String> cookedDishesIdList = convertDelimitedStringToList(employeeForm.getCookedDishes()); populateEmployee(employeeForm, employee); cookedDishesIdList.forEach( id -> cookedDishes.add(cookedDishesServiceDao.findById(Integer.parseInt(id)))); employee.setCookedDishes(cookedDishes); return employee; } else if (employeeForm.getPosition() == Position.Waiter) { Waiter employee = new Waiter(); List<Orders> orders = new ArrayList<>(); List<String> ordersIdList = convertDelimitedStringToList(employeeForm.getOrders()); ordersIdList.forEach(id -> orders.add(orderServiceDao.findById(Integer.parseInt(id)))); populateEmployee(employeeForm, employee); employee.setOrders(orders); return employee; } else { Employee employee = new Employee(); populateEmployee(employeeForm, employee); return employee; } }