
package de.ivu.elect.was.sitzberechnung.entity;

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

import java.util.Collection;
import java.util.HashSet;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;

public class ElectSitzberechnungKandidat extends AbstractElectSitzberechnungObject implements de.ivu.elect.sitzberechnung.Kandidat {

  private final de.ivu.elect.sitzberechnung.Staat staatsangehoerigkeit;

  private final Collection<Kandidatur> kandidaturen;

  public ElectSitzberechnungKandidat(de.ivu.elect.sitzberechnung.Staat staatsangehoerigkeit, Collection<Kandidatur> kandidaturenIdentischVerknuepft) {
    super(kandidaturenIdentischVerknuepft.stream().map(kandidatur -> kandidatur.getPk().toString()).sorted().collect(joining("_")));

    this.staatsangehoerigkeit = staatsangehoerigkeit;

    this.kandidaturen = new HashSet<>(kandidaturenIdentischVerknuepft);
  }

  @Override
  public de.ivu.elect.sitzberechnung.Staat getStaatsangehoerigkeit() {
    return staatsangehoerigkeit;
  }

  public Collection<Kandidatur> getKandidaturen() {
    return kandidaturen;
  }
}
