package alien4cloud.security.users;
import java.util.List;
import java.util.Map;
import alien4cloud.dao.model.FacetedSearchFacet;
import alien4cloud.dao.model.FacetedSearchResult;
import alien4cloud.dao.model.GetMultipleDataResult;
import alien4cloud.security.model.User;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
/**
* Implementation of the {@link IAlienUserDao} that stores data in memory only. This should not be used in production.
*
* @author luc boutier
*/
public class InMemoryUserDao implements IAlienUserDao {
private Map<String, User> userMap = Maps.newHashMap();
@Override
public void save(User user) {
userMap.put(user.getUsername(), user);
}
@Override
public User find(String username) {
return userMap.get(username);
}
@Override
public void delete(String username) {
userMap.remove(username);
}
@Override
public FacetedSearchResult search(String searchQuery, String group, int from, int size) {
List<User> userList = Lists.newArrayList();
for (User user : userMap.values()) {
if (user.getUsername().startsWith(searchQuery)) {
userList.add(user);
}
}
User[] users = userList.toArray(new User[userList.size()]);
String[] types = new String[users.length];
for (int i = 0; i < types.length; i++) {
types[i] = User.class.getName();
}
Map<String, FacetedSearchFacet[]> facets = Maps.newHashMap();
return new FacetedSearchResult(0, users.length, 0, users.length, types, users, facets);
}
@Override
public GetMultipleDataResult find(Map<String, String[]> filters, int maxElements) {
return null;
}
@Override
public List<User> find(String... usernames) {
// TODO Auto-generated method stub
return null;
}
}