001    package com.khubla.pragmatach.framework.dao;
002    
003    import java.util.List;
004    
005    import com.khubla.pragmatach.framework.api.PragmatachException;
006    
007    /**
008     * @author tome
009     */
010    public interface DAO<T, I> {
011       /**
012        * get the count of rows in table
013        */
014       long count() throws PragmatachException;
015    
016       /**
017        * delete
018        */
019       void delete(T t) throws PragmatachException;
020    
021       /**
022        * delete
023        */
024       void deletebyId(I i) throws PragmatachException;
025    
026       /**
027        * find by id
028        */
029       T findById(I i) throws PragmatachException;
030    
031       /**
032        * get all
033        */
034       List<T> getAll() throws PragmatachException;
035    
036       /**
037        * get all
038        */
039       List<T> getAll(int start, int count) throws PragmatachException;
040    
041       Class<I> getIdentifierClazz();
042    
043       /**
044        * get pager
045        */
046       Pager<T> getPager(int batchsize) throws PragmatachException;
047    
048       Class<T> getTypeClazz();
049    
050       /**
051        * do a config reload
052        */
053       void reloadConfig();
054    
055       /**
056        * save object
057        */
058       void save(T t) throws PragmatachException;
059    
060       /**
061        * update object
062        */
063       void update(T t) throws PragmatachException;
064    }