
package de.ivu.elect.dokumente.ergebnistabelle.referendum;

import de.ivu.elect.business.ergebnis.entity.Stimmabgabeart;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.gruppe.entity.PolitischeGruppe;
import de.ivu.elect.business.internet.control.PolitischeGruppeUndGebietUndStimmabgabeart;
import de.ivu.elect.dokumente.ergebnistabelle.AbstractErgebnistabelleZeilenSchluessel;
import de.ivu.elect.dokumente.ergebnistabelle.ErgebnistabelleZeileArt;

public class ReferendumErgebnistabelleZeilenSchluessel extends AbstractErgebnistabelleZeilenSchluessel {

  protected ReferendumErgebnistabelleZeilenSchluessel(ErgebnistabelleZeileArt zeileArt, Stimmabgabeart stimmabgabeart, Wahldurchfuehrungsgebiet gebiet) {
    super(zeileArt, stimmabgabeart, gebiet);
  }

  public PolitischeGruppeUndGebietUndStimmabgabeart getPolitischeGruppeUndGebietUndStimmabgabeart(ReferendumErgebnistabelleSpaltenSchluessel spaltenSchluessel) {
    return new PolitischeGruppeUndGebietUndStimmabgabeart(spaltenSchluessel.getGruppe().castTo(PolitischeGruppe.class).getEntity(), getGebiet(), getStimmabgabeart());
  }

  public static ReferendumErgebnistabelleZeilenSchluessel createFuerErfassungseinheit(Stimmabgabeart stimmabgabeart, Wahldurchfuehrungsgebiet gebiet) {
    return new ReferendumErgebnistabelleZeilenSchluessel(ErgebnistabelleZeileArt.ERFASSUNGSEINHEIT, stimmabgabeart, gebiet);
  }

  public static ReferendumErgebnistabelleZeilenSchluessel createFuerSumme(Stimmabgabeart stimmabgabeart, Wahldurchfuehrungsgebiet gebiet) {
    return new ReferendumErgebnistabelleZeilenSchluessel(ErgebnistabelleZeileArt.SUMME, stimmabgabeart, gebiet);
  }
}
