1 package atg.metier.dao; 2 3 import atg.metier.dao.exception.ATGDaoAccessSupportException; 4 import atg.metier.dao.exception.ATGDaoDataNotFoundException; 5 import atg.metier.entite.ATGIEntite; 6 import atg.util.service.ATGBasicClass; 7 import atg.util.service.identifiant.ATGIdentifiant; 8 import atg.util.service.identifiant.ATGListCritereValue; 9 import atg.util.service.list.ATGIListEntity; 10 11 /** 12 * <p>Titre : Classe mère de tous les DAOs</p> 13 * <p>Description : Cette classe sera la base de tous les futurs DAOs du Framework</p> 14 * <p>Copyright : FERRARI Olivier</p> 15 * @author FERRARI Olivier 16 * modifiée par YSMAL Vincent 17 * @version 1.1 18 * Ce logiciel est régi par la licence CeCILL soumise au droit français et 19 * respectant les principes de diffusion des logiciels libres. Vous pouvez 20 * utiliser, modifier et/ou redistribuer ce programme sous les conditions 21 * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA 22 * sur le site http://www.cecill.info. 23 * 24 * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 25 * pris connaissance de la licence CeCILL, et que vous en avez accepté les 26 * termes. 27 */ 28 29 public abstract class ATGDao<K extends ATGIEntite> 30 extends ATGBasicClass { 31 32 public final static int NIVEAU_VIDE=0; 33 public final static int NIVEAU_IDENTIFIANT=1; 34 public final static int NIVEAU_ATTRIBUTS=2; 35 public final static int NIVEAU_ATTRIBUTS_VO=3; 36 //*************************************************************************** 37 // Méthodes abstraites 38 //*************************************************************************** 39 40 /** 41 * Insertion d'un enregistrement en base de données 42 * @param valueObject ATGIEntite Value object à persiter 43 */ 44 public abstract void insert(K valueObject) throws ATGDaoAccessSupportException; 45 46 /** 47 * Chargement d'un enregistrement en base de données à partir de son identifiant 48 * @param identifiant ATGIdentifiant identifiant de l'enregistrement 49 * @param niveau int Niveau d'arborescence souhaité pour le chargement des objets en cascade 50 */ 51 public abstract K selectByIdentifiant(ATGIdentifiant identifiant, 52 int niveau) throws 53 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 54 55 /** 56 * Chargement d'un enregistrement en base de données à partir de son identifiant 57 * @param identifiant ATGIdentifiant identifiant de l'enregistrement 58 */ 59 public abstract K selectByIdentifiant(ATGIdentifiant identifiant) throws 60 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 61 62 /** 63 * Chargement de plusieurs enregistrements en base de données à partir de valeurs 64 * @param critere ATGListCritereValue critere de la recherche 65 * @param niveau int Niveau d'arborescence souhaité pour le chargement des objets en cascade 66 * @return ATGListValueObject Liste de value objet répondant au critère. 67 */ 68 public abstract ATGIListEntity<K> selectByCritere(ATGListCritereValue critere, 69 int niveau) throws 70 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 71 72 /** 73 * Chargement d'un enregistrement en base de données à partir de son identifiant 74 * @param critere ATGListCritereValue critere de la recherche 75 * @return ATGListValueObject Liste de value objet répondant au critère. 76 */ 77 public abstract ATGIListEntity<K> selectByCritere(ATGListCritereValue critere) throws 78 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 79 80 /** 81 * Modification d'un enregistrement en base de donnée 82 * @param entite ATGIEntite Value object à modifier 83 */ 84 public abstract void update(K entite) throws 85 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 86 87 /** 88 * Suppression d'un enregistrement en base de donnée 89 * @param identifiant ATGIdentifiant identifiant de l'enregistrement 90 */ 91 public abstract void delete(ATGIdentifiant identifiant) throws 92 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 93 /** 94 * Suppression d'un enregistrement en base de donnée 95 * @param entite ATGIEntite entite de l'enregistrement 96 */ 97 public abstract void delete(K entite) throws 98 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 99 /** 100 * Chargement de tous les enregistrements en base de données. 101 * @return ATGListValueObject Liste de value objet répondant au critère. 102 */ 103 public abstract ATGIListEntity<K> selectAll() throws 104 ATGDaoDataNotFoundException, ATGDaoAccessSupportException; 105 106 /** 107 * Permet d'obtenir le nombre de données correspondant à un critère, 108 * sans pour autant charger les VO en mémoire 109 * @return ATGListValueObject Liste de value objet répondant au critère. 110 */ 111 public abstract int countByCritere(ATGListCritereValue critere) throws 112 ATGDaoAccessSupportException; 113 114 }