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

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 AbstractPersonenWahlrechtPruefSchritt extends AbstractPersonenPruefSchritt {

  @Inject
  private PersonendatenWahlrechtMatcherResolver matcherResolver;

  public AbstractPersonenWahlrechtPruefSchritt() {
    super();
  }

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

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

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

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

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