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

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import de.ivu.elect.business.gebietsbaum.entity.GebietsartConstants;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsarteigenschaft;
import de.ivu.elect.business.wahl.entity.Wahlart;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class WahlartGebietsartenColumn extends AbstractWahlartColumn<Wahlart> {

  private static final long serialVersionUID = 1L;

  protected WahlartGebietsartenColumn(Messages messages, List<Gebietsarteigenschaft> alleGebietsarteigenschaften) {
    super(messages, GebietsartConstants.MESSAGE_KEY_ENTITY_MEHRZAHL, ColumnType.COLLECTION, wahlart -> {
      List<String> result = alleGebietsarteigenschaften.stream()
          .filter(gebietsarteigenschaft -> gebietsarteigenschaft.getWahlart().equals(wahlart))
          .map(gebietsarteigenschaft -> gebietsarteigenschaft.getGebietsart().getTitelWennLeerName()).collect(Collectors.toList());
      Collections.sort(result);

      return result;
    });

    for (Gebietsarteigenschaft gebietsarteigenschaft : alleGebietsarteigenschaften) {
      gebietsarteigenschaft.getGebietsart().getName(); // Lazy...
      gebietsarteigenschaft.getWahlart().getName();
    }
  }
}
