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

  @Inject
  transient Instance<StimmeingabeGruppeStimmenErfassenLabelGenerator> labelGeneratoren;

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

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