package alien4cloud.dao; import java.util.List; /** * A DAO that allows accessing data by Id or / and multiple Ids. * * @author Igor Ngouagna */ public interface IGenericIdDAO { /** * Saves an entity into the repository * * @param entity the entity to save */ <T> void save(T entity); /** * Bulk save multiple entities into the repository * * @param entities The entities to save. */ <T> void save(T[] entities); /** * Find an instance from the given class. * * @param clazz The class of the object to find. * @param id The id of the object. * @return The object that has the given id or null if no object matching the request is found. */ <T> T findById(Class<T> clazz, String id); /** * Check whether an object with the given id exists * * @param clazz The class of the object to find. * @param id The id of the object. * @param <T> type of the object * @return true if object exists, false otherwise */ <T> boolean exist(Class<T> clazz, String id); /** * Find instances by id * * @param clazz The class for which to find an instance. * @param ids array of id of the data to find. * @return List of Objects that has the given ids or empty list if no object matching the request is found. */ <T> List<T> findByIds(Class<T> clazz, String... ids); /** * Delete an instance from the given class. * * @param clazz The class of the object to delete. * @param id The id of the object to delete. */ void delete(Class<?> clazz, String id); }