From 64c8e926d167a17865a6c3d86e48b383d413b569 Mon Sep 17 00:00:00 2001 From: Eduardo Pedroni Date: Sun, 12 Jun 2016 21:03:29 +0200 Subject: Refactoring sorting --- src/eu/equalparts/cardbase/Cardbase.java | 3 --- .../cardstorage/StandaloneCardContainer.java | 20 +++----------------- src/eu/equalparts/cardbase/sorting/CardSorting.java | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 20 deletions(-) create mode 100644 src/eu/equalparts/cardbase/sorting/CardSorting.java (limited to 'src/eu/equalparts/cardbase') diff --git a/src/eu/equalparts/cardbase/Cardbase.java b/src/eu/equalparts/cardbase/Cardbase.java index 10908c8..9c630bd 100644 --- a/src/eu/equalparts/cardbase/Cardbase.java +++ b/src/eu/equalparts/cardbase/Cardbase.java @@ -2,10 +2,7 @@ package eu.equalparts.cardbase; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; diff --git a/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java b/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java index 1a4315d..53d248d 100644 --- a/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java +++ b/src/eu/equalparts/cardbase/cardstorage/StandaloneCardContainer.java @@ -1,16 +1,13 @@ package eu.equalparts.cardbase.cardstorage; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonProperty; import eu.equalparts.cardbase.cards.Card; -import eu.equalparts.cardbase.comparator.CardComparator; /** * TODO fix comments @@ -46,19 +43,8 @@ public class StandaloneCardContainer extends ReferenceCardContainer { * * @return an unmodifiable list of all the cards in the cardbase. */ - public Collection getCards() { - return Collections.unmodifiableCollection(cardData.values()); - } - - /** - * @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 Collection sortByField(String fieldName) throws NoSuchFieldException { - List sortedCards = new ArrayList(getCards()); - sortedCards.sort(new CardComparator(Card.class.getDeclaredField(fieldName))); - return Collections.unmodifiableCollection(sortedCards); + public List getCards() { + return new LinkedList(cardData.values()); } @Override 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 sortByField(List cards, String fieldName) throws NoSuchFieldException { + cards.sort(new CardComparator(Card.class.getDeclaredField(fieldName))); + return cards; + } +} -- cgit v1.2.3