View Javadoc

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 }