
package de.ivu.elect.presentation.ergebnis.dokumente.gesamtergebnis.berechner;

import de.ivu.elect.business.ergebnis.control.ErgebnisDaten;
import de.ivu.elect.business.internet.control.GebietUndStimmabgabeart;
import de.ivu.elect.presentation.ergebnis.dokumente.gesamtergebnis.StimmenAktuellMitVorperiode;

/**
 *  on 06.09.2017.
 */
public class GueltigeErstUndZweitstimmenAktuellMitVorperiodeBerechner
    extends
      AbstractErstUndZweitstimmenAktuellMitVorperiodeBerechner {

  private final ErgebnisDaten ergebnisDaten;
  private final GebietUndStimmabgabeart gebietUndStimmabgabeart;

  public GueltigeErstUndZweitstimmenAktuellMitVorperiodeBerechner(ErgebnisDaten ergebnisDaten,
      GebietUndStimmabgabeart gebietUndStimmabgabeart) {
    this.ergebnisDaten = ergebnisDaten;
    this.gebietUndStimmabgabeart = gebietUndStimmabgabeart;
  }

  @Override
  Long getErststimmenAktuell() {
    return ergebnisDaten.getErststimmenAktuellGueltige(gebietUndStimmabgabeart);
  }

  @Override
  Long getErststimmenVorperiode() {
    return ergebnisDaten.getErststimmenVorperiodeGueltige(gebietUndStimmabgabeart);
  }

  @Override
  Long getZweitstimmenAktuell() {
    return ergebnisDaten.getZweitstimmenAktuellGueltige(gebietUndStimmabgabeart);
  }

  @Override
  Long getZweitstimmenVorperiode() {
    return ergebnisDaten.getZweitstimmenVorperiodeGueltige(gebietUndStimmabgabeart);
  }

  public StimmenAktuellMitVorperiode getStimmenAktuellMitVorperiode() {
    return new StimmenAktuellMitVorperiode(getErststimmenAktuell(), getErststimmenVorperiode(),
        getZweitstimmenAktuell(), getZweitstimmenVorperiode());
  }
}
