Enhancements to detect errors and faciltiate easier testing.

This commit is contained in:
Ben Alex 2004-03-28 12:17:46 +00:00
parent d59a5da321
commit adb1971873
1 changed files with 36 additions and 3 deletions

View File

@ -16,6 +16,7 @@
package net.sf.acegisecurity.providers.dao.memory;
import net.sf.acegisecurity.providers.dao.User;
import net.sf.acegisecurity.providers.dao.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -42,16 +43,48 @@ public class UserMap {
//~ Methods ================================================================
public User getUser(String username) {
return (User) this.userMap.get(username.toLowerCase());
/**
* Locates the specified user by performing a case insensitive search by
* username.
*
* @param username to find
*
* @return the located user
*
* @throws UsernameNotFoundException if the user could not be found
*/
public User getUser(String username) throws UsernameNotFoundException {
User result = (User) this.userMap.get(username.toLowerCase());
if (result == null) {
throw new UsernameNotFoundException("Could not find user: "
+ username);
}
return result;
}
/**
* Indicates the size of the user map.
*
* @return the number of users in the map
*/
public int getUserCount() {
return this.userMap.size();
}
/**
* Adds a user to the in-memory map.
*
* @param user the user to be stored
*
* @throws IllegalArgumentException if a null User was passed
*/
public void addUser(User user) {
public void addUser(User user) throws IllegalArgumentException {
if (user == null) {
throw new IllegalArgumentException("Must be a valid User");
}
logger.info("Adding user [" + user + "]");
this.userMap.put(user.getUsername().toLowerCase(), user);
}