improve manager paging api

This commit is contained in:
Sebastian Sdorra
2011-06-09 21:46:22 +02:00
parent d5b387bd97
commit a99d7e6b1e
5 changed files with 81 additions and 25 deletions

View File

@@ -38,6 +38,7 @@ package sonia.scm;
import java.io.IOException; import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
/** /**
* *
@@ -86,15 +87,26 @@ public interface Manager<T extends ModelObject, E extends Exception>
* Method description * Method description
* *
* *
*
* @param sortby
* @param desc
* @param start * @param start
* @param limit * @param limit
* *
* @return * @return
* @since 1.4 * @since 1.4
*/ */
public Collection<T> getAll(String sortby, boolean desc, int start, public Collection<T> getAll(int start, int limit);
int limit);
/**
* Method description
*
*
*
*
* @param comparator
* @param start
* @param limit
*
* @return
* @since 1.4
*/
public Collection<T> getAll(Comparator<T> comparator, int start, int limit);
} }

View File

@@ -505,7 +505,9 @@ public abstract class AbstractManagerResource<T extends ModelObject,
if (limit > 0) if (limit > 0)
{ {
items = manager.getAll(sortby, desc, start, limit);
// TODO create comparator
items = manager.getAll(start, limit);
} }
else else
{ {

View File

@@ -63,6 +63,7 @@ import sonia.scm.util.Util;
import java.io.IOException; import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
import java.util.LinkedList; import java.util.LinkedList;
/** /**
@@ -367,20 +368,18 @@ public class XmlGroupManager extends AbstractGroupManager
* Method description * Method description
* *
* *
* @param sortby *
* @param desc * @param comparator
* @param start * @param start
* @param limit * @param limit
* *
* @return * @return
*/ */
@Override @Override
public Collection<Group> getAll(String sortby, boolean desc, int start, public Collection<Group> getAll(Comparator<Group> comparator, int start,
int limit) int limit)
{ {
return Util.createSubCollection(groupDB.values(), comparator,
// TODO sort
return Util.createSubCollection(groupDB.values(),
new CollectionAppender<Group>() new CollectionAppender<Group>()
{ {
@Override @Override
@@ -391,6 +390,21 @@ public class XmlGroupManager extends AbstractGroupManager
}, start, limit); }, start, limit);
} }
/**
* Method description
*
*
* @param start
* @param limit
*
* @return
*/
@Override
public Collection<Group> getAll(int start, int limit)
{
return getAll(null, start, limit);
}
/** /**
* Method description * Method description
* *

View File

@@ -71,6 +71,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedList; import java.util.LinkedList;
@@ -400,20 +401,18 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
* Method description * Method description
* *
* *
* @param sortby *
* @param desc * @param comparator
* @param start * @param start
* @param limit * @param limit
* *
* @return * @return
*/ */
@Override @Override
public Collection<Repository> getAll(String sortby, boolean desc, int start, public Collection<Repository> getAll(Comparator<Repository> comparator,
int limit) int start, int limit)
{ {
return Util.createSubCollection(repositoryDB.values(), comparator,
// TODO sort
return Util.createSubCollection(repositoryDB.values(),
new CollectionAppender<Repository>() new CollectionAppender<Repository>()
{ {
@Override @Override
@@ -424,6 +423,21 @@ public class XmlRepositoryManager extends AbstractRepositoryManager
}, start, limit); }, start, limit);
} }
/**
* Method description
*
*
* @param start
* @param limit
*
* @return
*/
@Override
public Collection<Repository> getAll(int start, int limit)
{
return getAll(null, start, limit);
}
/** /**
* Method description * Method description
* *

View File

@@ -69,6 +69,7 @@ import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -411,20 +412,18 @@ public class XmlUserManager extends AbstractUserManager
* Method description * Method description
* *
* *
* @param sortby *
* @param desc * @param comaparator
* @param start * @param start
* @param limit * @param limit
* *
* @return * @return
*/ */
@Override @Override
public Collection<User> getAll(String sortby, boolean desc, int start, public Collection<User> getAll(Comparator<User> comaparator, int start,
int limit) int limit)
{ {
return Util.createSubCollection(userDB.values(), comaparator,
// TODO sort
return Util.createSubCollection(userDB.values(),
new CollectionAppender<User>() new CollectionAppender<User>()
{ {
@Override @Override
@@ -435,6 +434,21 @@ public class XmlUserManager extends AbstractUserManager
}, start, limit); }, start, limit);
} }
/**
* Method description
*
*
* @param start
* @param limit
*
* @return
*/
@Override
public Collection<User> getAll(int start, int limit)
{
return getAll(null, start, limit);
}
/** /**
* Method description * Method description
* *