View Javadoc

1   /*
2    * Created on Jun 20, 2006
3    *
4    */
5   package org.musicontroller.security;
6   
7   import java.util.List;
8   
9   /**
10   * Specifies the methods a Dao must implement to be used for 
11   * loading and storing User-objects.
12   * The UserDetailsDao class will use tht implementation of this Dao
13   * to load User-objects from a database, or whatever method is used to persist
14   * Users.  
15   * @author Arjan Verstoep
16   * @version $Id: UserDao.java,v 1.1 2010/03/16 18:55:42 varienaja Exp $
17   * @see DaoUserDetailsService
18   */
19  public interface UserDao {
20  
21  	/**
22  	 * Get a User by specifying its loginname
23  	 * @param loginname The loginname.
24  	 * @return The User that has this loginname, or null if there is no such User.
25  	 */
26  	public IUser getUserByLoginname(String loginname);
27  	
28  	/**
29  	 * Get a User by specifying its id.
30  	 * @param id The id.
31  	 * @return The User that has this id, or null of there is no such User.
32  	 */
33  	public IUser getUserById(long id);
34  	
35  	/**
36  	 * Get a Particpant by specifying its loginname ans encrypted password
37  	 * @param loginname The loginname
38  	 * @param password The encrypted password
39  	 * @return The User that has this loginname and password, or null if there is no such User.
40  	 */
41  	public IUser findUserByNamePassword(String loginname, String password);
42  	
43  	/**
44  	 * List all Users.
45  	 * @return All User-objects that exist, ordered by loginname.
46  	 */
47  	public List<IUser> listUsers();
48  
49  	/**
50  	 * List Users by specifying a certain loginname
51  	 * @param loginname The loginname.
52  	 * @return A List of all Users that have this loginname (can be 0 or 1).
53  	 */
54  	public List<IUser> findUserByLoginname(String loginname);
55  
56  	/**
57  	 * Persists a User-object.
58  	 * @param user The User to persist.
59  	 */
60  	public void save(IUser user);
61  	
62  	/**
63  	 * Deletes a User-object.
64  	 * @param user The User to purge from persistent storage.
65  	 */
66  	public void delete(IUser user);
67  	
68  	/**
69  	 * @return A list of all roles.
70  	 */
71  	public List<Role> listRoles();
72  
73  }