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.Rolle;
import de.ivu.elect.business.benutzerverwaltung.entity.RolleConstants;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;


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

public class BenutzerRollenColumn extends AbstractBenutzerColumn<Benutzer> {

  public BenutzerRollenColumn(Messages messages, AbstractBenutzerDAO abstractBenutzerDAO) {
    super("Benutzer-Rollen", messages, RolleConstants.MESSAGE_KEY_ENTITY_MEHRZAHL, ColumnType.COLLECTION,
        benutzer -> abstractBenutzerDAO.attach(benutzer).getRolles().stream().map(Rolle::getName).sorted(String::compareTo).collect(toList()));
  }

}
