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

import static java.util.Objects.nonNull;
import de.ivu.elect.business.gebietsbaum.entity.EntityMitGebiet;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;

public abstract class AbstractEintragungslisteEintrag implements EintragungslisteEintragBase, EntityMitGebiet {

  private static final long serialVersionUID = 1L;

  public AbstractEintragungslisteEintrag() {
    super();
  }

  public boolean hasWahlvorschlagsPerson() {
    return nonNull(getWahlvorschlagsPerson());
  }

  @Override
  public Gebiet getGebiet() {
    if (hasWahlvorschlagsPerson()) {
      return getWahlvorschlagsPerson().getGebiet();
    }

    return getEintragungsliste().getGebiet();
  }

  public void initLeerzeile() {
    setGueltigkeit(EintragungslisteEintragGueltigkeit.LEERZEILE);
    setErfassungZeitpunkt(null);
    setWahlvorschlagsPerson(null);
  }

  public boolean isGueltigkeitErfasst() {
    return getGueltigkeit().isErfasst();
  }

  public boolean isGueltigkeitErfassbar() {
    return !isGueltigkeitErfasst();
  }

  public boolean isGueltigErfasst() {
    return getGueltigkeit().isGueltigErfasst();
  }

  public boolean isUngueltigErfasst() {
    return getGueltigkeit().isUngueltigErfasst();
  }
}
