package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao; import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException; import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Employee; import java.util.Set; public interface EmployeeDAO { /** * Persist the given employee. * * @param employee that should be stored * @return the id that was assigned * @throws PersistenceException if the employee could not be persisted */ long add(Employee employee) throws PersistenceException; /** * Update the given employee. * * @param employee that should be updated * @throws ElementNotFoundException if no employee with the given id exists * @throws PersistenceException if the employee could not be updated */ void update(Employee employee) throws ElementNotFoundException, PersistenceException; /** * Get all stored employees. * * @return list containing all stored employees * @throws PersistenceException if loading the stored employees failed */ Set list() throws PersistenceException; /** * Remove employee with the given id from the store. * * @param id of the employee that should be removed * @throws ElementNotFoundException if no employee with the given id exists * @throws PersistenceException if the employee could not be removed */ void remove(long id) throws ElementNotFoundException, PersistenceException; }