You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/11/10 05:58:48 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1395] small refactor for orderBy init

This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new 1325e63  [SYNCOPE-1395] small refactor for orderBy init
1325e63 is described below

commit 1325e634931402b82211c1bda855a2d963078bf1
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Sat Nov 10 06:58:17 2018 +0100

    [SYNCOPE-1395] small refactor for orderBy init
---
 .../persistence/jpa/dao/AbstractAnySearchDAO.java    | 20 +++++++++++++-------
 .../core/persistence/jpa/dao/JPAAnySearchDAO.java    |  2 +-
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
index 2a204cc..6800dbe 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
@@ -136,12 +136,6 @@ public abstract class AbstractAnySearchDAO extends AbstractDAO<Any<?>> implement
         return search(SyncopeConstants.FULL_ADMIN_REALMS, cond, -1, -1, orderBy, kind);
     }
 
-    protected List<OrderByClause> filterOrderBy(final List<OrderByClause> orderBy) {
-        return orderBy.stream().
-                filter(clause -> !ArrayUtils.contains(ORDER_BY_NOT_ALLOWED, clause.getField())).
-                collect(Collectors.toList());
-    }
-
     protected abstract <T extends Any<?>> List<T> doSearch(
             Set<String> adminRealms,
             SearchCond searchCondition,
@@ -353,7 +347,19 @@ public abstract class AbstractAnySearchDAO extends AbstractDAO<Any<?>> implement
             return Collections.<T>emptyList();
         }
 
-        return doSearch(adminRealms, cond, page, itemsPerPage, orderBy, kind);
+        List<OrderByClause> effectiveOrderBy;
+        if (orderBy.isEmpty()) {
+            OrderByClause keyClause = new OrderByClause();
+            keyClause.setField(kind == AnyTypeKind.USER ? "username" : "name");
+            keyClause.setDirection(OrderByClause.Direction.ASC);
+            effectiveOrderBy = Collections.singletonList(keyClause);
+        } else {
+            effectiveOrderBy = orderBy.stream().
+                    filter(clause -> !ArrayUtils.contains(ORDER_BY_NOT_ALLOWED, clause.getField())).
+                    collect(Collectors.toList());;
+        }
+
+        return doSearch(adminRealms, cond, page, itemsPerPage, effectiveOrderBy, kind);
     }
 
     @Override
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index 53c52d9..5810207 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -326,7 +326,7 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
 
         OrderBySupport obs = new OrderBySupport();
 
-        filterOrderBy(orderBy).forEach(clause -> {
+        orderBy.forEach(clause -> {
             OrderBySupport.Item item = new OrderBySupport.Item();
 
             if (anyUtils.getField(clause.getField()) == null) {