
package de.ivu.elect.business.sitzberechnung.control.absolutemehrheitswahl;

import java.util.LinkedHashSet;
import java.util.Set;

import de.ivu.elect.business.ergebniskonflikt.entity.KandidaturenAuswaehlenErgebnisKonfliktCustomData;
import de.ivu.elect.business.person.entity.PersonendatenPK;

/**
 * Bei der absoluten Mehrheitswahl wird gelost, wenn der Zweitplatzierte für die Stichwahl wegen Stimmengleichheit nicht
 * feststeht. Aus diesen Zweitplatzierte wird einer per Los gezogen, der an der Stichwahl teilnehmen darf.
 */
public class AbsoluteMehrheitswahlErgebnisKonfliktCustomData extends KandidaturenAuswaehlenErgebnisKonfliktCustomData {

  private static final long serialVersionUID = 1L;

  public AbsoluteMehrheitswahlErgebnisKonfliktCustomData() {
    super();
    setAnzahlZuLosen(1);
  }

  @Override
  public String getClassName() {
    return AbsoluteMehrheitswahlErgebnisKonfliktCustomData.class.getName();
  }

  public PersonendatenPK getGelosteKandidaturPK() {
    if (getGelosteKandidaturenPKs().isEmpty()) {
      return null;
    } else {
      return getGelosteKandidaturenPKs().iterator().next();
    }
  }

  public void setGelosteKandidaturPK(PersonendatenPK personendatenPK) {
    Set<PersonendatenPK> set = new LinkedHashSet<>();
    set.add(personendatenPK);
    setGelosteKandidaturenPKs(set);
  }

  @Override
  public boolean equals(Object o) {
    return super.equals(o) && o instanceof AbsoluteMehrheitswahlErgebnisKonfliktCustomData;
  }

  @Override
  public int hashCode() {
    return super.hashCode();
  }

}
