package fr.chantier.service;
import fr.chantier.dao.GenericDAO;
import java.io.Serializable;
import java.util.List;
import java.util.Collection;
/**
* Created by IntelliJ IDEA.
* User: sora
* Date: Oct 27, 2008
* Time: 3:25:10 PM
* To change this template use File | Settings | File Templates.
*/
public interface GenericManager<T, ID extends Serializable, DAO extends GenericDAO> {
/**
* Recupere l'entite selon l'identifiant donne
*
* @param id identifiant de l'entite
* @param lock Bloque la modification de l'objet recupere
* @return Entite correspondante
*/
T findById(ID id, boolean lock);
/**
* Recupere toute les entites de la base de donnees
*
* @return Liste d'entites de la base
*/
Collection<T> findAll();
/**
* Rend l'entite donne persistante. L'entite est inscrite dans la base si elle n'existe pas. Elle est mise a jour si elle a ete modifie
*
* @param entity Entite a rendre persistente
* @return Entite persistante
*/
T makePersistent(T entity);
/**
* Decouple l'entite de la base de donne. La supprime de la base de donnee.
*
* @param entity Entite a supprimer.
*/
void makeTransient(T entity);
}