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

import de.ivu.elect.business.kandidatur.entity.Kandidatur;

public enum ExportZulassungsstatusBeschraenkung {
  ALLE{

    @Override
    public boolean isBeschraenktAufZulassungsstatus(Kandidatur kandidatur) {
      return false;
    }
  },
  NUR_ZUGELASSENE {

    @Override
    public boolean isBeschraenktAufZulassungsstatus(Kandidatur kandidatur) {
      return !kandidatur.getWahlvorschlag().isZugelassen() || !kandidatur.isZugelassen();
    }
  },
  NUR_NICHT_ZUGELASSENE{

    @Override
    public boolean isBeschraenktAufZulassungsstatus(Kandidatur kandidatur) {
      return !kandidatur.getWahlvorschlag().isNichtZugelassenImSinneAbgelehnt() && !kandidatur.isNichtZugelassenImSinneAbgelehnt();
    }
  },
  NUR_OFFENE{

    @Override
    public boolean isBeschraenktAufZulassungsstatus(Kandidatur kandidatur) {
      return !kandidatur.getWahlvorschlag().isUngeprueft() && !kandidatur.isUngeprueft();
    }
  };

  public abstract boolean isBeschraenktAufZulassungsstatus(Kandidatur kandidatur);
}
