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

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import de.ivu.elect.business.stimmeingabe.entity.StimmenLadenArt;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlParameter;
import de.ivu.elect.business.wahl.entity.Wahltermin;


import static de.ivu.elect.business.wahl.entity.WahlParameterWerte.STIMMEN_LADEN_FUER_EXPORTE;
import static de.ivu.elect.business.wahl.entity.WahlParameterWerte.STIMMEN_LADEN_FUER_PRAESENTATION;
import static de.ivu.elect.business.wahl.entity.WahlParameterWerte.STIMMEN_LADEN_FUER_SITZBERECHNUNG;

public class StimmenLadenWahlParameterInit extends AbstractWahlParameterInit {
  @Override
  protected Collection<WahlParameter> createDefaultParameters(Wahltermin wahltermin, Wahl wahl) {
    List<WahlParameter> result = new ArrayList<>();

    add(result, STIMMEN_LADEN_FUER_EXPORTE, getExportDefault().name());
    add(result, STIMMEN_LADEN_FUER_SITZBERECHNUNG, getSitzberechnungDefault().name());
    add(result, STIMMEN_LADEN_FUER_PRAESENTATION, getPraesentationDefault().name());

    return result;
  }

  protected StimmenLadenArt getExportDefault() {
    return StimmenLadenArt.LAZY;
  }

  protected StimmenLadenArt getSitzberechnungDefault() {
    return StimmenLadenArt.NO_ENTITY;
  }

  protected StimmenLadenArt getPraesentationDefault() {
    return StimmenLadenArt.NO_ENTITY_EAGER;
  }
}
