1 //---------------------------------------------------------------------- 2 // 3 // PerfectJPattern: "Design patterns are good but components are better!" 4 // IGenericDao.java Copyright (c) 2009 Giovanni Azua Garcia 5 // bravegag@hotmail.com 6 // 7 // This program is free software; you can redistribute it and/or 8 // modify it under the terms of the GNU General Public License 9 // as published by the Free Software Foundation; either version 3 10 // of the License, or (at your option) any later version. 11 // 12 // This program is distributed in the hope that it will be useful, 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 // GNU General Public License for more details. 16 // 17 // You should have received a copy of the GNU General Public License 18 // along with this program; if not, see <http://www.gnu.org/licenses/>. 19 // 20 //---------------------------------------------------------------------- 21 package org.perfectjpattern.jee.api.integration.dao; 22 23 /** 24 * <b>Data Access Object (DAO) Pattern</b>: Abstracts from any direct type of 25 * database or persistence mechanism. Provides specific operations without 26 * exposing details of the database. 27 * <br/><br/> 28 * <b>Responsibility</b> : Complete Generic Data Access Object definition 29 * including: 30 * <br/> 31 * <br/> 32 * <ul> 33 * <li>Creating a new record in the underlying persistent storage</li> 34 * <li>Reading existing records from the underlying persistence 35 * storage through the finder methods as defined in {@link IGenericReadOnlyDao} 36 * </li> 37 * <li>Update an existing record in the underlying persistent storage</li> 38 * <li>Delete an existing record in the underlying persistent storage</li> 39 * <li>Delete all records from the underlying persistent storage</li> 40 * </ul> 41 * 42 * @param <Id> Identification type 43 * @param <Element> Element type 44 * 45 * @see <a href="http://en.wikipedia.org/wiki/Data_Access_Object">Data Access 46 * Object wiki definition</a> 47 * @see <a href="http://www.ibm.com/developerworks/java/library/j-genericdao. 48 * html">Don't repeat the DAO!</a> 49 * 50 * @author <a href="mailto:bravegag@hotmail.com">Giovanni Azua</a> 51 * @version $Revision: 1.0 $ $Date: Nov 26, 2007 8:24:15 PM $ 52 */ 53 public 54 interface IGenericDao<Id, Element> 55 extends IGenericReadOnlyDao<Id, Element>, IBaseDao<Id, Element> 56 { 57 // empty 58 }