Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public enum PlayerSortingField {
- NAME(Comparator.comparing((Player p) -> p.getPersonalData().getName())),
- SURNAME(Comparator.comparing((Player p) -> p.getPersonalData().getSurname())),
- BIRTH_DATE(Comparator.comparing((Player p) -> p.getPersonalData().getBirthDate()));
- private final Comparator<Player> comparingFunction;
- PlayerSortingField(Comparator<Player> comparingFunction) {
- this.comparingFunction = comparingFunction;
- }
- private Comparator<Player> getComparingFunction() {
- return this.comparingFunction;
- }
- public static Comparator<Player> getComparatorFromFields(List<PlayerSortingField> sortingFields) {
- if (sortingFields == null || sortingFields.size() < 1) {
- throw new IllegalArgumentException("The sorting order is not defined!");
- }
- Comparator<Player> playerComparator = sortingFields.stream()
- .map(PlayerSortingField::getComparingFunction)
- .reduce(Comparator::thenComparing)
- .get();
- return playerComparator;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement