package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.service; import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidEmployeeException; import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Employee; import java.util.Set; public interface EmployeeService { /** * Add given employee to the store. * * @param employee that should be added to the store * @return the id that was assigned * @throws InvalidEmployeeException if the employee is invalid * @throws ServiceException if the employee could not be persisted */ long add(Employee employee) throws InvalidEmployeeException, ServiceException; /** * Update the given employee. * * @param employee that should be updated * @return the updated employee * @throws InvalidEmployeeException if the employee is invalid * @throws ServiceException if the updated employee could not be persisted */ Employee update(Employee employee) throws InvalidEmployeeException, ServiceException; /** * Get all stored employees. * * @return list containing all stored employees * @throws ServiceException if loading the stored employees failed */ Set list() throws ServiceException; /** * Remove employee with the given id from the store. * * @param id of the employee that should be removed * @throws InvalidEmployeeException if given employee id is invalid or does not exist * @throws ServiceException if the employee could not be removed from the store */ void remove(long id) throws InvalidEmployeeException, ServiceException; }