Subversion Repositories WebE

Rev

Rev 27 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
18 moos 1
package ch.ffhs.webE.dao;
2
 
26 moos 3
import java.util.ArrayList;
18 moos 4
import java.util.List;
5
 
6
import org.hibernate.Session;
7
import org.hibernate.Transaction;
8
 
33 PointedEar 9
import ch.ffhs.webE.domain.User;
10
 
18 moos 11
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
12
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
13
 
26 moos 14
public class UserDAOImpl implements UserDAO
15
{
22 moos 16
 
33 PointedEar 17
  @SessionTarget
18
  Session session;
19
  @TransactionTarget
20
  Transaction transaction;
18 moos 21
 
33 PointedEar 22
  /**
23
   * Creates a list of all the registered users
24
   *
25
   * @return an ArrayList with all the users - in case of a problem, an empty
26
   *         list is returned
27
   */
28
  @SuppressWarnings("unchecked")
29
  @Override
30
  public List<User> listUser()
31
  {
32
    List<User> user = null;
33
    try
26 moos 34
    {
33 PointedEar 35
      user = this.session.createQuery("from User").list();
36
    }
37
    catch (Exception e)
38
    {
39
      e.printStackTrace();
40
    }
18 moos 41
 
33 PointedEar 42
    // If no user was checked, return an empty list to mitigate null pointer
43
    // exceptions
44
    if (user == null)
45
    {
46
      user = new ArrayList<User>();
26 moos 47
    }
33 PointedEar 48
    return user;
49
  }
22 moos 50
 
33 PointedEar 51
  /**
52
   * Executes the query to save the user
53
   *
54
   * @param User
55
   *          Domain object to be saved
56
   * @return void
57
   */
58
  @Override
59
  public void saveOrUpdateUser(User user)
60
  {
61
    try
26 moos 62
    {
33 PointedEar 63
      this.session.saveOrUpdate(user);
26 moos 64
    }
33 PointedEar 65
    catch (Exception e)
66
    {
67
      this.transaction.rollback();
68
      e.printStackTrace();
69
    }
70
  }
22 moos 71
 
33 PointedEar 72
  /**
73
   * Used to delete a user.
74
   *
75
   * @param int userId
76
   */
77
  @Override
78
  public void deleteUser(int userId)
79
  {
80
    try
26 moos 81
    {
33 PointedEar 82
      User user = (User) this.session.get(User.class, userId);
83
      this.session.delete(user);
26 moos 84
    }
33 PointedEar 85
    catch (Exception e)
86
    {
87
      this.transaction.rollback();
88
      e.printStackTrace();
89
    }
90
  }
22 moos 91
 
33 PointedEar 92
  /**
93
   * Returns a single user with this user name (used for login)
94
   *
95
   * @param username
96
   *          : String - entire user name
97
   * @return User: Returns a user object if something is found. If not, null is
98
   *         returned
99
   */
100
  public User searchUsername(String username)
101
  {
102
    User user = null;
103
 
104
    // Exec query
105
    try
26 moos 106
    {
33 PointedEar 107
      user = (User) this.session
108
          .createQuery("FROM User " + "WHERE username = :username")
109
          .setParameter("username", username).uniqueResult();
26 moos 110
    }
33 PointedEar 111
    catch (Exception e)
112
    {
113
      // TODO: Log error
114
    }
115
    return user;
116
  }
27 moos 117
 
33 PointedEar 118
  /**
119
   * Used to list a single user by Id.
120
   */
121
  @Override
122
  public User listUserById(int userId)
123
  {
124
    User user = null;
125
    try
27 moos 126
    {
33 PointedEar 127
      user = (User) this.session.get(User.class, userId);
27 moos 128
    }
33 PointedEar 129
    catch (Exception e)
130
    {
131
      e.printStackTrace();
132
    }
133
    return user;
134
  }
27 moos 135
}