package de.ivu.elect.business.stimmeingabe.entity;

import static de.ivu.elect.business.stimmeingabe.entity.StandardStimmeingabeImporterGruppeImGebietErsetzenStrategie.ERSETZE_GRUPPE_IM_GEBIET_NACH_TK_FALLBACK_POSITION;

public interface StimmeingabeImporterErsetzenStrategie {

  StimmeingabeImporterErsetzenStrategie DEFAULT = new StimmeingabeImporterErsetzenStrategie() {
    @Override
    public StimmeingabeImporterGruppeImGebietErsetzenStrategie getStimmeingabeImporterGruppeImGebietErsetzenStrategie() {
      return ERSETZE_GRUPPE_IM_GEBIET_NACH_TK_FALLBACK_POSITION;
    }

    @Override
    public StimmeingabeImporterListenkandidaturErsetzenStrategie getStimmeingabeImporterListenkandidaturErsetzenStrategie() {
      return StandardStimmeingabeImporterListenkandidaturErsetzenStrategie.NACH_TK_FALLBACK_NACH_NAME;
    }

    @Override
    public StimmeingabeImporterReferendumOptionErsetzenStrategie getStimmeingabeImporterReferendumOptionErsetzenStrategie() {
      return StandardStimmeingabeImporterReferendumOptionErsetzenStrategie.NACH_TK_FALLBACK_NACH_POSITION;
    }
  };

  StimmeingabeImporterGruppeImGebietErsetzenStrategie getStimmeingabeImporterGruppeImGebietErsetzenStrategie();

  StimmeingabeImporterListenkandidaturErsetzenStrategie getStimmeingabeImporterListenkandidaturErsetzenStrategie();

  StimmeingabeImporterReferendumOptionErsetzenStrategie getStimmeingabeImporterReferendumOptionErsetzenStrategie();
}
