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

import javax.annotation.Nonnull;

import de.ivu.elect.business.gebietsbaum.entity.EntityMitGebiet;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.mandant.entity.EntityMitMandant;
import de.ivu.elect.business.person.entity.Sperrmerkmal;
import de.ivu.elect.business.security.entity.EntityMitSperrmerkmal;

public abstract class AbstractPersonenKonflikt implements PersonenKonfliktBase, EntityMitGebiet, EntityMitSperrmerkmal, EntityMitMandant {

  private static final long serialVersionUID = 1L;

  @Nonnull
  @Override
  public Sperrmerkmal getSperrmerkmal() {
    return getPersonendaten().getSperrmerkmal();
  }

  @Override
  public Gebiet getGebiet() {
    if (getPersonendaten().hasGebiet()) {
      return getPersonendaten().getGebiet();
    }

    return null;
  }

  public boolean isKonfliktStatusIrrelevant() {
    return PersonenKonfliktStatus.IRRELEVANT.equals(getPersonenKonfliktStatus());
  }

  public boolean isKonfliktStatusManuellZuPruefen() {
    return PersonenKonfliktStatus.MANUELL_ZU_PRUEFEN.equals(getPersonenKonfliktStatus());
  }

  public boolean isKonfliktStatusAblehnungsgrund() {
    return PersonenKonfliktStatus.IST_ABLEHNUNGSGRUND.equals(getPersonenKonfliktStatus());
  }

  @Override
  public EntityMitMandant getParent() {
    return getPersonendaten();
  }
}
