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

import javax.annotation.Nullable;
import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.boundary.AbstractDHondtQuotientDAO;
import de.ivu.elect.business.ergebnis.boundary.AbstractErgebnisDAO;
import de.ivu.elect.business.ergebnis.boundary.AbstractErgebnisLogEintragDAO;
import de.ivu.elect.business.ergebnis.boundary.DHondtQuotientDAO;
import de.ivu.elect.business.ergebnis.boundary.ErgebnisDAO;
import de.ivu.elect.business.ergebnis.boundary.ErgebnisLogEintragDAO;
import de.ivu.elect.business.ergebnis.entity.Ergebnis;
import de.ivu.elect.business.ergebniskonflikt.boundary.AbstractErgebnisKonfliktDAO;
import de.ivu.elect.business.ergebniskonflikt.boundary.ErgebnisKonfliktDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.stimmeingabe.boundary.AbstractErgebnisGueltigerEingangDAO;
import de.ivu.elect.business.stimmeingabe.boundary.ErgebnisGueltigerEingangDAO;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeDocumentErgebnisDaten;
import de.ivu.elect.business.stimmeingabe.control.StimmeingabeDocumentErgebnisDatenCreator;

public class ErgebnisDatenCreator extends AbstractErgebnisDatenCreator implements StimmeingabeDocumentErgebnisDatenCreator {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient StimmergebnisDatenCreator stimmergebnisDatenCreator;

  @Inject
  private transient ErgebnisDAO ergebnisDAO;

  @Inject
  private transient ErgebnisKonfliktDAO ergebnisKonfliktDAO;

  @Inject
  private transient ErgebnisLogEintragDAO ergebnisLogEintragDAO;

  @Inject
  private transient DHondtQuotientDAO dHondtQuotientDAO;

  @Inject
  private transient ErgebnisGueltigerEingangDAO ergebnisGueltigerEingangDAO;

  public ErgebnisDatenCreator() {
    super();
  }

  @Override
  protected AbstractErgebnisGueltigerEingangDAO getErgebnisGueltigerEingangDAO() {
    return ergebnisGueltigerEingangDAO;
  }

  @Override
  protected AbstractDHondtQuotientDAO getDHondtQuotientDAO() {
    return dHondtQuotientDAO;
  }

  @Override
  protected AbstractErgebnisLogEintragDAO getErgebnisLogEintragDAO() {
    return ergebnisLogEintragDAO;
  }

  @Override
  protected AbstractErgebnisKonfliktDAO getErgebnisKonfliktDAO() {
    return ergebnisKonfliktDAO;
  }

  @Override
  protected AbstractErgebnisDAO getErgebnisDAO() {
    return ergebnisDAO;
  }

  @Override
  protected AbstractStimmergebnisDatenCreator getStimmergebnisDatenCreator() {
    return stimmergebnisDatenCreator;
  }

  @Override
  public StimmeingabeDocumentErgebnisDaten createErgebnisDatenExporte(Ergebnis ergebnis, @Nullable Gebiet gebiet) {
    return createErgebnisDatenExporte(ergebnis);
  }
}
