
package de.ivu.elect.business.pruefung.boundary;

import java.io.Serializable;
import java.util.List;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.business.wahlrechtspruefung.entity.Wahlrechtspruefung;
import de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag;

/**
 * NICHT PER @Inject!!!! eine ZulassungPrueferFactory benutzen.
 */
public interface ZulassungPruefer extends Serializable {

  boolean isZulassenErlaubt(Kandidatur kandidatur);

  boolean isZulassenErlaubtUndNichtAbgelehnt(Kandidatur kandidatur);

  List<String> getGruendeFuerVerweigerungDerZulassung(Kandidatur kandidatur);

  String getBegruendungDerZulassungsverweigerung(Kandidatur kandidatur);

  List<Wahlrechtspruefung> collectWahlrechtspruefungen(Kandidatur kandidatur);

  boolean isZulassenErlaubt(Wahlvorschlag wahlvorschlag);

  List<String> getGruendeFuerVerweigerungDerZulassung(Wahlvorschlag wahlvorschlag);

  String getBegruendungDerZulassungsverweigerung(Wahlvorschlag wahlvorschlag);

  List<Wahlrechtspruefung> collectWahlrechtspruefungen(Wahlvorschlag wahlvorschlag);
}
