
package de.ivu.elect.business.stimmeingabe.boundary.plausi;

import java.io.Serializable;
import java.util.Optional;

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

import de.ivu.elect.business.stimmeingabe.control.plausi.StimmeingabePlausiDefinitions;
import de.ivu.elect.business.wahl.entity.Wahl;

@RequestScoped
public class StimmeingabePlausiDefinitionsResolver implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient Instance<StimmeingabePlausiDefinitions> stimmeingabePlausiDefinitions;

  public StimmeingabePlausiDefinitionsResolver() {
    super();
  }

  public Optional<StimmeingabePlausiDefinitions> findStimmeingabePlausiDefinitions(Wahl wahl) {
    for (StimmeingabePlausiDefinitions instance : stimmeingabePlausiDefinitions) {
      if (instance.isApplicable(wahl)) {
        return Optional.of(instance);
      }
    }

    return Optional.empty();
  }
}
