View Javadoc

1   package com.panogenesis.dao.hibernate;
2   
3   import java.util.List;
4   
5   import com.panogenesis.dao.UserDAO;
6   import com.panogenesis.model.User;
7   import com.panogenesis.model.UserCookie;
8   
9   import org.springframework.orm.ObjectRetrievalFailureException;
10  
11  /***
12   * This class interacts with Spring's HibernateTemplate to save/delete and
13   * retrieve User objects.
14   *
15   * <p>
16   * <a href="UserDAOHibernate.java.html"><i>View Source</i></a>
17   * </p>
18   *
19   * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
20    *  Modified by <a href="mailto:dan@getrolling.com">Dan Kibler </a>
21  */
22  public class UserDAOHibernate extends BaseDAOHibernate implements UserDAO {
23      /***
24       * @see com.panogenesis.dao.UserDAO#getUser(java.lang.String)
25       */
26      public User getUser(String username) {
27          User user = (User) getHibernateTemplate().get(User.class, username);
28  
29          if (user == null) {
30              log.warn("uh oh, user '" + username + "' not found...");
31              throw new ObjectRetrievalFailureException(User.class, username);
32          }
33  
34          return user;
35      }
36  
37      /***
38       * @see com.panogenesis.dao.UserDAO#getUsers(com.panogenesis.model.User)
39       */
40      public List getUsers(User user) {
41          return getHibernateTemplate().find("from User u order by upper(u.username)");
42      }
43  
44      /***
45       * @see com.panogenesis.dao.UserDAO#saveUser(com.panogenesis.model.User)
46       */
47      public void saveUser(final User user) {
48          if (log.isDebugEnabled()) {
49              log.debug("user's id: " + user.getUsername());
50          }
51  
52          getHibernateTemplate().saveOrUpdate(user);
53      }
54  
55      /***
56       * @see com.panogenesis.dao.UserDAO#removeUser(java.lang.String)
57       */
58      public void removeUser(String username) {
59          removeUserCookies(username);
60  
61          User user = getUser(username);
62          getHibernateTemplate().delete(user);
63      }
64  
65      /***
66       * @see com.panogenesis.dao.UserDAO#getUserCookie(com.panogenesis.model.UserCookie)
67       */
68      public UserCookie getUserCookie(final UserCookie cookie) {
69          List cookies = getHibernateTemplate().find(
70                  "from UserCookie c where c.username=? and c.cookieId=?", 
71                  new Object[]{cookie.getUsername(), cookie.getCookieId()});
72  
73          if (cookies.size() == 0) {
74              return null;
75          }
76  
77          return (UserCookie) cookies.get(0);
78      }
79  
80      /***
81       * @see com.panogenesis.dao.UserDAO#removeUserCookies(java.lang.String)
82       */
83      public void removeUserCookies(String username) {
84          // delete any cookies associated with this user
85          List cookies =
86              getHibernateTemplate().find("from UserCookie c where c.username=?",
87                                          username);
88  
89          if ((cookies.size() > 0) && log.isDebugEnabled()) {
90              log.debug("deleting " + cookies.size() + " cookies for user '" +
91                        username + "'");
92          }
93  
94          getHibernateTemplate().deleteAll(cookies);
95      }
96  
97      /***
98       * @see com.panogenesis.dao.UserDAO#saveUserCookie(com.panogenesis.model.UserCookie)
99       */
100     public void saveUserCookie(UserCookie cookie) {
101         getHibernateTemplate().saveOrUpdate(cookie);
102     }
103 }