From 1edd0e87688f0b650477877a489cefc48976eab6 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 9 Jun 2011 22:10:30 +0200 Subject: [PATCH] improve manager sort api --- scm-core/src/main/java/sonia/scm/Manager.java | 11 ++++++++ .../sonia/scm/group/xml/XmlGroupManager.java | 24 +++++++++++++++++- .../repository/xml/XmlRepositoryManager.java | 25 ++++++++++++++++--- .../sonia/scm/user/xml/XmlUserManager.java | 22 +++++++++++++++- 4 files changed, 77 insertions(+), 5 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/Manager.java b/scm-core/src/main/java/sonia/scm/Manager.java index 093a494c14..93129f4fcf 100644 --- a/scm-core/src/main/java/sonia/scm/Manager.java +++ b/scm-core/src/main/java/sonia/scm/Manager.java @@ -83,6 +83,17 @@ public interface Manager */ public Collection getAll(); + /** + * Method description + * + * + * + * @param comparator + * @return + * @since 1.4 + */ + public Collection getAll(Comparator comparator); + /** * Method description * diff --git a/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java b/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java index 02637720fb..8e6296f75b 100644 --- a/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java +++ b/scm-webapp/src/main/java/sonia/scm/group/xml/XmlGroupManager.java @@ -62,9 +62,12 @@ import sonia.scm.util.Util; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; +import java.util.List; /** * @@ -351,16 +354,35 @@ public class XmlGroupManager extends AbstractGroupManager */ @Override public Collection getAll() + { + return getAll(null); + } + + /** + * Method description + * + * + * @param comparator + * + * @return + */ + @Override + public Collection getAll(Comparator comparator) { SecurityUtil.assertIsAdmin(securityContextProvider); - LinkedList groups = new LinkedList(); + List groups = new ArrayList(); for (Group group : groupDB.values()) { groups.add(group.clone()); } + if (comparator != null) + { + Collections.sort(groups, comparator); + } + return groups; } diff --git a/scm-webapp/src/main/java/sonia/scm/repository/xml/XmlRepositoryManager.java b/scm-webapp/src/main/java/sonia/scm/repository/xml/XmlRepositoryManager.java index 950b4591d0..8df01ea38a 100644 --- a/scm-webapp/src/main/java/sonia/scm/repository/xml/XmlRepositoryManager.java +++ b/scm-webapp/src/main/java/sonia/scm/repository/xml/XmlRepositoryManager.java @@ -71,10 +71,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -377,12 +377,14 @@ public class XmlRepositoryManager extends AbstractRepositoryManager * Method description * * + * + * @param comparator * @return */ @Override - public Collection getAll() + public Collection getAll(Comparator comparator) { - LinkedList repositories = new LinkedList(); + List repositories = new ArrayList(); for (Repository repository : repositoryDB.values()) { @@ -394,9 +396,26 @@ public class XmlRepositoryManager extends AbstractRepositoryManager } } + if (comparator != null) + { + Collections.sort(repositories, comparator); + } + return repositories; } + /** + * Method description + * + * + * @return + */ + @Override + public Collection getAll() + { + return getAll(null); + } + /** * Method description * diff --git a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java index 4902544a91..0615c8a8a5 100644 --- a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java +++ b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java @@ -69,6 +69,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedList; @@ -395,16 +396,35 @@ public class XmlUserManager extends AbstractUserManager */ @Override public Collection getAll() + { + return getAll(null); + } + + /** + * Method description + * + * + * @param comparator + * + * @return + */ + @Override + public Collection getAll(Comparator comparator) { SecurityUtil.assertIsAdmin(scurityContextProvider); - LinkedList users = new LinkedList(); + List users = new ArrayList(); for (User user : userDB.values()) { users.add(user.clone()); } + if (comparator != null) + { + Collections.sort(users, comparator); + } + return users; }