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

import de.ivu.elect.business.personenpruefung.control.PersonPruefungKonfigurationDefault;

import javax.annotation.Nullable;
import javax.enterprise.inject.Instance;

public abstract class AbstractPersonPruefungKonfiguration implements PersonPruefungKonfigurationBase {
  private static final long serialVersionUID = 1L;

  @Nullable
  public PersonPruefungKonfiguration ermittleDefault(Instance<PersonPruefungKonfigurationDefault> personPruefungKonfigurationDefaults) {
    for (PersonPruefungKonfigurationDefault personPruefungKonfigurationDefault : personPruefungKonfigurationDefaults) {
      if (personPruefungKonfigurationDefault.accept(getWahltermin(), getWahl())) {
        for (PersonPruefungKonfiguration standard : personPruefungKonfigurationDefault.getPersonPruefungKonfigurationenDefault(getWahltermin(), getWahl())) {
          if (standard.getPersonPruefungKonfigurationTK().equals(getTk())) {
            return standard;
          }
        }
      }
    }
    return null;
  }
}
