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

import java.util.Collection;
import java.util.function.Predicate;

import javax.ejb.Stateless;
import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.entity.PersonPruefungKonfigurationPersonentyp;

@Specializes
@Stateless
public class CorePersonenErneutPruefer extends PersonenErneutPruefer {

  private static final long serialVersionUID = 1L;

  public CorePersonenErneutPruefer() {
    super();
  }

  @Override
  protected Predicate<Personendaten> getPersonendatenFilter(Collection<PersonPruefungKonfigurationPersonentyp> personentypen) {
    return super.getPersonendatenFilter(personentypen).or(personendaten -> personentypen.contains(PersonPruefungKonfigurationPersonentyp.KANDIDAT) && personendaten.isInstanceOf(Kandidatur.class));
  }
}
