View Javadoc

1   /**
2    * 
3    */
4   package ar.com.jiji.kaya.dao.hib;
5   
6   import java.util.List;
7   
8   import ar.com.jiji.kaya.dao.CRUDDAO;
9   import ar.com.jiji.kaya.dao.PageableTableDAO;
10  import ar.com.jiji.kaya.query.Query;
11  
12  /**
13   * @author lparra
14   * @version $Revision$ $Date$
15   */
16  public class HibernateCRUDPageableDaoImpl<T> extends AbstractHibernateDaoImpl
17  		implements CRUDDAO<T>, PageableTableDAO<T> {
18  	private HibernateCRUDImpl<T> crud;
19  
20  	private HibernatePageableImpl<T> pageable;
21  
22  	// TODO se puede evitar usar el clazz obteniendo de alguna manera la clase
23  	// de T
24  	// ver getClass().getTypeParameters()
25  	public HibernateCRUDPageableDaoImpl(Class clazz) {
26  		crud = new HibernateCRUDImpl<T>(this, clazz);
27  		pageable = new HibernatePageableImpl<T>(this, clazz);
28  	}
29  
30  	public void save(T obj) {
31  		crud.save(obj);
32  	}
33  
34  	public T load(long id) {
35  		return crud.load(id);
36  	}
37  
38  	public void remove(long id) {
39  		crud.remove(id);
40  	}
41  
42  	public List<T> getAll() {
43  		return crud.getAll();
44  	}
45  
46  	public int getSize() {
47  		return pageable.getSize();
48  	}
49  
50  	public int getSize(Query query) {
51  		return pageable.getSize(query);
52  	}
53  
54  	public List<T> getPage(int nFirst, int nPageSize, String sortColumn,
55  			boolean bSortOrder) {
56  		return pageable.getPage(nFirst, nPageSize, sortColumn, bSortOrder);
57  	}
58  
59  	public List<T> getPage(int nFirst, int nPageSize, String sortColumn,
60  			boolean bSortOrder, Query query) {
61  		return pageable.getPage(nFirst, nPageSize, sortColumn, bSortOrder,
62  				query);
63  	}
64  
65  }