aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/equalparts/cardbase/sorting
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/equalparts/cardbase/sorting')
-rw-r--r--src/eu/equalparts/cardbase/sorting/CardSorting.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/eu/equalparts/cardbase/sorting/CardSorting.java b/src/eu/equalparts/cardbase/sorting/CardSorting.java
new file mode 100644
index 0000000..04413b9
--- /dev/null
+++ b/src/eu/equalparts/cardbase/sorting/CardSorting.java
@@ -0,0 +1,20 @@
+package eu.equalparts.cardbase.sorting;
+
+import java.util.List;
+
+import eu.equalparts.cardbase.cards.Card;
+import eu.equalparts.cardbase.comparator.CardComparator;
+
+public abstract class CardSorting {
+
+ /**
+ * @param cards
+ * @param fieldName the name of the field by which to sort.
+ * @return an unmodifiable collection representing the cardbase sorted in the required order.
+ * @throws NoSuchFieldException if the field provided is invalid.
+ */
+ public static List<Card> sortByField(List<Card> cards, String fieldName) throws NoSuchFieldException {
+ cards.sort(new CardComparator(Card.class.getDeclaredField(fieldName)));
+ return cards;
+ }
+}