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

import javax.enterprise.inject.Instance;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.entity.Wahl;

public class StimmeingabeReferendumOptionStimmenErfassenLabelGeneratorFinder {

  @Inject
  transient Instance<StimmeingabeReferendumOptionStimmenErfassenLabelGenerator> labelGeneratoren;

  public boolean hasStimmeingabeReferendumOptionStimmenErfassenLabelGeneratorFuerWahl(Wahl wahl) {
    for (StimmeingabeReferendumOptionStimmenErfassenLabelGenerator labelGenerator : labelGeneratoren) {
      if (labelGenerator.isAkzeptiertWahlart(wahl.getWahlart())) {
        return true;
      }
    }
    return false;
  }

  public StimmeingabeReferendumOptionStimmenErfassenLabelGenerator getStimmeingabeReferendumOptionStimmenErfassenLabelGeneratorFuerWahl(Wahl wahl) {
    for (StimmeingabeReferendumOptionStimmenErfassenLabelGenerator labelGenerator : labelGeneratoren) {
      if (labelGenerator.isAkzeptiertWahlart(wahl.getWahlart())) {
        return labelGenerator;
      }
    }
    throw new IllegalStateException("Für die Wahlart " + wahl.getWahlart()
        + " wurde kein passender StimmeingabeReferendumOptionStimmenErfassenLabelGenerator gefunden.");
  }
}
