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 }