Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

genericmanager.java

By: a guest on Mar 1st, 2010  |  syntax: Java  |  size: 1.76 KB  |  hits: 243  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package hibex.dao;
  2.  
  3. import hibex.dto.PersistentObject;
  4.  
  5. import java.io.Serializable;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9.  
  10. import org.hibernate.SessionFactory;
  11. import org.hibernate.criterion.DetachedCriteria;
  12.  
  13. public class GenericManager<PK extends Serializable, T extends PersistentObject<PK>> {
  14.         private Class<T> modelClass;
  15.         private GenericDao<T, PK> dao;
  16.  
  17.         private static Map<Class<PersistentObject>, GenericManager> managersMap = new HashMap<Class<PersistentObject>, GenericManager>();
  18.  
  19.         public GenericManager(Class<T> modelClass) {
  20.                 this.modelClass = modelClass;
  21.                 this.dao = new GenericDaoImpl<T, PK>(modelClass);
  22.                 managersMap.put((Class<PersistentObject>) this.modelClass, this);
  23.         }
  24.  
  25.         @SuppressWarnings("unchecked")
  26.         public static <PK2 extends Serializable, T2 extends PersistentObject<PK2>> GenericManager<PK2, T2> lookupManagerByClass(
  27.                         Class<T2> modelClass) {
  28.                 return managersMap.get(modelClass);
  29.         }
  30.  
  31.         public void setSessionFactory(SessionFactory sessionFactory) {
  32.                 dao.setSessionFactory(sessionFactory);
  33.         }
  34.        
  35.         public SessionFactory getSessionFactory() {
  36.                 return dao.getSessionFactory();
  37.         }
  38.  
  39.         public Class<T> getModelClass() {
  40.                 return modelClass;
  41.         }
  42.  
  43.         public void setDao(GenericDao<T, PK> dao) {
  44.                 this.dao = dao;
  45.         }
  46.  
  47.         public List<T> find(DetachedCriteria criteria) {
  48.                 return dao.getObjects(criteria);
  49.         }
  50.  
  51.         public List<T> find(PK[] ids) {
  52.                 return dao.getObjects(ids);
  53.         }
  54.  
  55.         public T get(PK id) {
  56.                 return dao.findById(id);
  57.         }
  58.  
  59.         public List<T> findAll() {
  60.                 return dao.getObjects();
  61.         }
  62.  
  63.         public Serializable insert(T object) {
  64.                 return dao.create(object);
  65.         }
  66.  
  67.         public void update(T object) {
  68.                 dao.update(object);
  69.         }
  70.  
  71.         public void delete(T object) {
  72.                 dao.delete(object);
  73.         }
  74. }