
package de.ivu.elect.business.personenpruefung.control.mehrstaatigkeit;

import javax.inject.Inject;

import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.business.personenpruefung.control.AbstractPersonenPruefSchritt;
import de.ivu.elect.business.personenpruefung.entity.PersonenKonfliktArt;
import de.ivu.elect.business.personenpruefung.entity.PersonenKonfliktStatus;

public abstract class AbstractPersonenMehrstaatigkeitPruefSchritt extends AbstractPersonenPruefSchritt {

  @Inject
  private PersonendatenMehrstaatigkeitMatcherResolver matcherResolver;

  public AbstractPersonenMehrstaatigkeitPruefSchritt() {
    super();
  }

  @Override
  public boolean isInstantPersonenPruefSchritt() {
    return false;
  }

  @Override
  public PersonenKonfliktArt getPersonenKonfliktArt() {
    return PersonenKonfliktArt.MEHRSTAATIGKEIT_PRUEFUNG_FEHLGESCHLAGEN;
  }

  @Override
  public PersonenKonfliktStatus getPersonenKonfliktStatus() {
    return PersonenKonfliktStatus.MANUELL_ZU_PRUEFEN;
  }

  @Override
  public boolean isPotentiellNichtGeeignet(Personendaten personendaten) {
    return !getMatcher(personendaten).matches(personendaten);
  }

  public AbstractPersonendatenMehrstaatigkeitMatcher getMatcher(Personendaten personendaten) {
    return matcherResolver.getMatcher(personendaten);
  }
}
