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

import java.util.Map;

import de.ivu.elect.business.ergebnis.entity.Stimmenart;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.gruppe.entity.PolitischeGruppe;

public interface GebietDaten<N extends Number> {
  Gebiet getGebiet();

  WahlteilnehmerAnzahl getAnzahlWahlberechtigteImGebiet();
  WahlteilnehmerAnzahl getAnzahlWaehlerImGebiet();
  GebietDatenWahlbeteiligung getWahlbeteiligung();

  Map<Stimmenart, N> getGueltige();
  Map<Stimmenart, N> getUngueltige();

  boolean isErgebnisVorhanden();

  Map<PolitischeGruppe, ParteiStimmen<N>> getParteiStimmen();
  Map<Gruppe, ReferendumFrage<N>> getReferendumFragen();
}
