package org.appfuse.service.impl;
import java.util.List;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.appfuse.dao.UserDao;
import org.appfuse.model.User;
import org.appfuse.service.UserExistsException;
import org.appfuse.service.UserManager;
import org.springframework.dao.DataIntegrityViolationException;
public class UserManagerImpl extends BaseManager implements UserManager {
private UserDao dao;
public void setUserDao(UserDao dao) {
this.dao = dao;
}
public User getUser(String userId) {
return dao.getUser(new Long(userId));
}
public List getUsers(User user) {
return dao.getUsers(user);
}
public void saveUser(User user) throws UserExistsException {
if (user.getVersion() == null) {
user.setUsername(user.getUsername().toLowerCase());
}
try {
dao.saveUser(user);
} catch (DataIntegrityViolationException e) {
throw new UserExistsException("User '" + user.getUsername() + "' already exists!");
}
}
public void removeUser(String userId) {
if (log.isDebugEnabled()) {
log.debug("removing user: " + userId);
}
dao.removeUser(new Long(userId));
}
public User getUserByUsername(String username) throws UsernameNotFoundException {
return (User) dao.loadUserByUsername(username);
}
}