You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2019/09/30 22:49:58 UTC
[knox] branch master updated: KNOX-2027 - Need a reverse order sort
on a table based on a column. (#159)
This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new 34f2aa0 KNOX-2027 - Need a reverse order sort on a table based on a column. (#159)
34f2aa0 is described below
commit 34f2aa0917c7453d27d66c0389eaa43670c2c6fb
Author: Larry McCay IV <46...@users.noreply.github.com>
AuthorDate: Mon Sep 30 18:49:53 2019 -0400
KNOX-2027 - Need a reverse order sort on a table based on a column. (#159)
---
.../org/apache/knox/gateway/shell/table/KnoxShellTable.java | 13 ++++++++++++-
.../apache/knox/gateway/shell/table/KnoxShellTableTest.java | 10 ++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
index 1fea1f9..04e5320 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
@@ -21,6 +21,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.swing.SortOrder;
+
import org.apache.knox.gateway.util.JsonUtils;
@@ -122,6 +124,10 @@ public class KnoxShellTable {
}
public KnoxShellTable sort(String colName) {
+ return sort(colName, SortOrder.ASCENDING);
+ }
+
+ public KnoxShellTable sort(String colName, SortOrder order) {
KnoxShellTable table = new KnoxShellTable();
Comparable<? extends Object> value;
@@ -131,7 +137,12 @@ public class KnoxShellTable {
value = col.get(i);
index.add(new RowIndex(value, i));
}
- Collections.sort(index);
+ if (SortOrder.ASCENDING.equals(order)) {
+ Collections.sort(index);
+ }
+ else {
+ Collections.sort(index, Collections.reverseOrder());
+ }
table.headers = new ArrayList<String>(headers);
for (RowIndex i : index) {
table.rows.add(new ArrayList<Comparable<? extends Object>>(this.rows.get(i.index)));
diff --git a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
index 3141afe..6b0c60c 100644
--- a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
+++ b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
@@ -34,6 +34,8 @@ import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
+import javax.swing.SortOrder;
+
import org.apache.commons.io.FileUtils;
import org.easymock.IAnswer;
import org.junit.Test;
@@ -194,6 +196,14 @@ public class KnoxShellTableTest {
KnoxShellTable table2 = table.sort("Column A");
assertEquals(table2.getRows().get(0).get(0), "123");
assertEquals(table2.getRows().get(1).get(0), "789");
+
+ table2 = table.sort("Column A", SortOrder.DESCENDING);
+ assertEquals(table2.getRows().get(0).get(0), "789");
+ assertEquals(table2.getRows().get(1).get(0), "123");
+
+ table2 = table.sort("Column B", SortOrder.DESCENDING);
+ assertEquals(table2.getRows().get(0).get(1), "456");
+ assertEquals(table2.getRows().get(1).get(1), "012");
}
@Test