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

import java.util.List;

import de.ivu.elect.business.kandidatur.entity.Direktkandidatur;
import de.ivu.elect.business.sitzberechnung.control.util.NachStimmenSortierer;

class AbsoluteMehrheitswahlKandidaturenNachStimmenSortierer extends NachStimmenSortierer<Direktkandidatur> {

  boolean isWiederholungswahlNoetig() {
    return getErstplatzierte().size() > 2;
  }

  /**
   * Das ist der Fall, wenn es genau zwei Erstplatzierte gibt oder genau einen Erstplatzierten und genau einen
   * Zweitplatzierten.
   * 
   * @return <code>true</code>, wenn zwei Kandidaten mit höchsten Stimmenzahlen eindeutig feststehen.
   */
  boolean sindTeilnehmerAnStichwahlEindeutig() {
    List<Direktkandidatur> erstplatzierte = getErstplatzierte();
    return erstplatzierte.size() == 2 || (erstplatzierte.size() == 1 && getZweitplatzierte().size() == 1);
  }

}