package de.ivu.elect.presentation.benutzerverwaltung.table;

import de.ivu.elect.business.benutzerverwaltung.boundary.AbstractBenutzerDAO;
import de.ivu.elect.business.benutzerverwaltung.entity.Benutzer;
import de.ivu.elect.business.benutzerverwaltung.entity.BenutzerConstants;
import de.ivu.elect.business.benutzerverwaltung.entity.Rolle;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;


import static java.util.stream.Collectors.toList;

public class RolleBenutzerColumn extends AbstractRolleColumn<Rolle> {
  protected RolleBenutzerColumn(Messages messages, AbstractBenutzerDAO abstractBenutzerDAO) {
    super("Rolle-Benutzer", messages, BenutzerConstants.MESSAGE_KEY_ENTITY_MEHRZAHL, ColumnType.COLLECTION, rolle ->
        abstractBenutzerDAO.findByRolle(rolle).stream().map(Benutzer::getBenutzerkennung).sorted(String::compareTo).collect(toList())
    );
  }
}
