
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 StimmeingabeListenkandidaturStimmenErfassenLabelGeneratorFinder {

  @Inject
  transient Instance<StimmeingabeListenkandidaturStimmenErfassenLabelGenerator> labelGeneratoren;

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

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