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

import de.ivu.elect.business.sitzberechnung.control.LessAbstractSitzberechnungsalgorithmus;
import de.ivu.elect.business.sitzberechnung.entity.SitzberechnungsalgorithmusKonfiguration;
import de.ivu.elect.business.sitzberechnung.entity.Sitzberechnungseingabe;
import de.ivu.elect.business.sitzberechnung.entity.Sitzberechnungsergebnis;
import de.ivu.elect.business.wahl.entity.WahlartSitzberechnungsalgorithmus;

/**
 * @see StandardDirektwahlSitzberechnungsalgorithmusInternal
 */
public class StandardDirektwahlSitzberechnungsalgorithmus extends LessAbstractSitzberechnungsalgorithmus {

  private static final long serialVersionUID = 1L;

  public static final String ID = "de.ivu.elect.business.sitzberechnung.control.direktwahl.StandardDirektwahlSitzberechnungsalgorithmus";

  public StandardDirektwahlSitzberechnungsalgorithmus() {
    super();
  }

  @Override
  public WahlartSitzberechnungsalgorithmus getSitzberechnungsalgorithmusEnum() {
    return WahlartSitzberechnungsalgorithmus.ELECT_DIREKTWAHL;
  }

  @Override
  public Sitzberechnungsergebnis fuehreSitzberechnungDurch(Sitzberechnungseingabe<SitzberechnungsalgorithmusKonfiguration> sitzberechnungseingabe) {
    return new StandardDirektwahlSitzberechnungsalgorithmusInternal(sitzberechnungseingabe, isVergibtSitze()).berechneSitzverteilung();
  }
}
