added user search resource

This commit is contained in:
Sebastian Sdorra
2011-02-11 19:44:10 +01:00
parent 3f5969e885
commit c598f1079e
7 changed files with 425 additions and 3 deletions

View File

@@ -44,6 +44,8 @@ import org.slf4j.LoggerFactory;
import sonia.scm.HandlerEvent;
import sonia.scm.SCMContextProvider;
import sonia.scm.search.SearchRequest;
import sonia.scm.search.SearchUtil;
import sonia.scm.security.ScmSecurityException;
import sonia.scm.store.Store;
import sonia.scm.store.StoreFactory;
@@ -62,8 +64,11 @@ import sonia.scm.web.security.WebSecurityContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
@@ -319,6 +324,47 @@ public class XmlUserManager extends AbstractUserManager
fresh.copyProperties(user);
}
/**
* Method description
*
*
* @param searchRequest
*
* @return
*/
@Override
public Collection<User> search(final SearchRequest searchRequest)
{
List<User> users = new ArrayList<User>();
int index = 0;
int counter = 0;
Iterator<User> it = userDB.values().iterator();
while (it.hasNext())
{
User user = it.next();
if (SearchUtil.matchesOne(searchRequest, user.getName(),
user.getDisplayName(), user.getMail()))
{
index++;
if (searchRequest.getStartWith() <= index)
{
users.add(user.clone());
counter++;
if (searchRequest.getMaxResults() <= counter)
{
break;
}
}
}
}
return users;
}
//~--- get methods ----------------------------------------------------------
/**