package de.ivu.elect.business.hochrechnung.control;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.ivu.elect.business.hochrechnung.boundary.Hochrechnungsalgorithm;
import de.ivu.elect.business.hochrechnung.boundary.HochrechnungsalgorithmusKonfiguration;
import de.ivu.elect.business.hochrechnung.entity.HochrechnenAnhandVorlaufigesErgebnisKonfiguration;
import de.ivu.elect.business.hochrechnung.entity.HochrechneralgorithmusAusfuehrbarkeitStatus;
import de.ivu.elect.business.hochrechnung.entity.StimmenHochrechnerEingabedaten;
import de.ivu.elect.business.hochrechnung.entity.StimmenhochrechnerAusgabedaten;

public class HochrechnenAnhandVorlaufigesErgebnis implements Hochrechnungsalgorithm {

  private static final Logger LOG = LoggerFactory.getLogger(HochrechnenAnhandVorlaufigesErgebnis.class);

  private final HochrechnenAnhandVorlaufigesErgebnisKonfiguration konfiguration;

  public HochrechnenAnhandVorlaufigesErgebnis(HochrechnenAnhandVorlaufigesErgebnisKonfiguration konfiguration) {
    this.konfiguration = konfiguration;
  }

  @Override
  public StimmenhochrechnerAusgabedaten ermittleHochgerechneteStimmen(StimmenHochrechnerEingabedaten<Long> eingabedaten) {
    HochrechneralgorithmusAusfuehrbarkeitStatus ausfuehrbarkeitStatus = HochrechneralgorithmusAusfuehrbarkeitStatus.AUSFUEHRBAR;
    // es muessen keine hochgerechneteStimmen ermittelt werden.

    StimmenhochrechnerAusgabedaten result = new StimmenhochrechnerAusgabedaten(ausfuehrbarkeitStatus);

    return result;
  }

  @Override
  public HochrechnungsalgorithmusKonfiguration getHochrechnungsalgorithmusKonfiguration() {
    return konfiguration;
  }
}
