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

import de.ivu.elect.business.ergebnis.entity.Stimmabgabeart;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.gruppe.entity.PolitischeGruppe;
import de.ivu.elect.business.internet.control.GebietUndStimmabgabeart;

import java.util.Map;

public interface StimmergebnisDatenInterface {

  Map<PolitischeGruppe, Long> getErststimmenAktuell(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getErststimmenAktuellSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);

  Map<PolitischeGruppe, Long> getErststimmenVorperiode(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Long getErststimmenVorperiodeGueltige(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getErststimmenVorperiodeSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);

  Map<PolitischeGruppe, Long> getZweitstimmenAktuell(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getZweitstimmenAktuellSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);

  Map<PolitischeGruppe, Long> getZweitstimmenVorperiode(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Long getZweitstimmenVorperiodeGueltige(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getZweitstimmenVorperiodeSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);

  Map<PolitischeGruppe, Long> getGesamtStimmenAktuell(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getGesamtstimmenAktuellSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);

  Map<PolitischeGruppe, Long> getGesamtStimmenVorperiode(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Long getGesamtStimmenGueltigeVorperiode(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Stimmabgabeart stimmabgabeart);

  Map<Gruppe, Long> getGesamtstimmenVorperiodeSystemgruppen(GebietUndStimmabgabeart gebietUndStimmabgabeart);
}
