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.Vehicle; import java.util.Set; public interface VehicleDAO { /** * Persist the given vehicle. * * @param vehicle that should be stored * @return the id that was assigned * @throws PersistenceException if the vehicle could not be persisted */ long add(Vehicle vehicle) throws PersistenceException; /** * Update the given vehicle. * * @param vehicle that should be updated * @throws ElementNotFoundException if no vehicle with the given id exists * @throws PersistenceException if the vehicle could not be updated */ void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException; /** * Get all stored vehicles. * * @return list containing all stored vehicles * @throws PersistenceException if loading the stored vehicles failed */ Set list() throws PersistenceException; /** * Returns the vehicle with the given id. * * @param vehicleId id of the vehicle that should be returned * @return vehicle with the given id * @throws ElementNotFoundException if no vehicle with the given id exists * @throws PersistenceException if the vehicle could not be loaded */ Vehicle get(long vehicleId) throws ElementNotFoundException, PersistenceException; /** * Remove vehicle with the given id from the store. * * @param id of the vehicle that should be removed * @throws ElementNotFoundException if no vehicle with the given id exists * @throws PersistenceException if the vehicle could not be removed */ void remove(long id) throws ElementNotFoundException, PersistenceException; }