Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. public enum PlayerSortingField {
  2.     NAME(Comparator.comparing((Player p) -> p.getPersonalData().getName())),
  3.     SURNAME(Comparator.comparing((Player p) -> p.getPersonalData().getSurname())),
  4.     BIRTH_DATE(Comparator.comparing((Player p) -> p.getPersonalData().getBirthDate()));
  5.  
  6.     private final Comparator<Player> comparingFunction;
  7.  
  8.     PlayerSortingField(Comparator<Player> comparingFunction) {
  9.         this.comparingFunction = comparingFunction;
  10.     }
  11.  
  12.     private Comparator<Player> getComparingFunction() {
  13.         return this.comparingFunction;
  14.     }
  15.  
  16.     public static Comparator<Player> getComparatorFromFields(List<PlayerSortingField> sortingFields) {
  17.         if (sortingFields == null || sortingFields.size() < 1) {
  18.             throw new IllegalArgumentException("The sorting order is not defined!");
  19.         }
  20.  
  21.         Comparator<Player> playerComparator = sortingFields.stream()
  22.                 .map(PlayerSortingField::getComparingFunction)
  23.                 .reduce(Comparator::thenComparing)
  24.                 .get();
  25.  
  26.         return playerComparator;
  27.     }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement