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

import java.util.Map;

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

/**
 * Basisklasse für "Prüfschritte", die keine Konflikte erzeugen, sondern nur Äderungen an Personen vornehmen
 */
public abstract class AbstractPersonenKeinKonfliktPruefSchritt extends AbstractPersonenPruefSchritt {

  public AbstractPersonenKeinKonfliktPruefSchritt() {
    super();
  }

  @Override
  protected boolean pruefePerson(Personendaten personendaten, Map<Personendaten, PersonenKonflikt> konfliktPerPersonendaten) {
    return fuehreAktionAnPersonAus(personendaten);
  }

  protected abstract boolean fuehreAktionAnPersonAus(Personendaten personendaten);

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

  /**
   * Es werden nie Konflikte erzeugt
   */
  @Override
  public boolean isPotentiellNichtGeeignet(Personendaten personendaten) {
    return false;
  }

  /**
   * Es werden nie Konflikte erzeugt => nicht relevant
   */
  @Override
  public PersonenKonfliktArt getPersonenKonfliktArt() {
    return null;
  }

  /**
   * Es werden nie Konflikte erzeugt => nicht relevant
   */
  @Override
  public PersonenKonfliktStatus getPersonenKonfliktStatus() {
    return PersonenKonfliktStatus.IRRELEVANT;
  }
}
