package de.ivu.elect.was.sitzberechnung.entity;

import de.ivu.elect.sitzberechnung.Gebiet;
import de.ivu.elect.sitzberechnung.Gruppe;
import de.ivu.elect.sitzberechnung.Kandidat;
import de.ivu.elect.sitzberechnung.Kandidatur;
import de.ivu.elect.sitzberechnung.Waehlbarkeit;

public abstract class AbstractSitzberechnungKandidatur<K extends de.ivu.elect.business.kandidatur.entity.Kandidatur>
        extends AbstractElectSitzberechnungEntity<K> implements Kandidatur {
  private final Gebiet gebiet;
  private final Gruppe gruppe;
  private final Waehlbarkeit waehlbarkeit;
  private final Kandidat kandidat;

  protected AbstractSitzberechnungKandidatur(K entity, Gebiet gebiet, Gruppe gruppe, Waehlbarkeit waehlbarkeit, Kandidat kandidat) {
    super(entity);
    this.gebiet = gebiet;
    this.gruppe = gruppe;
    this.waehlbarkeit = waehlbarkeit;
    this.kandidat = kandidat;
  }

  @Override
  public Kandidat getKandidat() {
    return kandidat;
  }

  @Override
  public Waehlbarkeit getWaehlbarkeit() {
    return waehlbarkeit;
  }

  @Override
  public Gebiet getGebiet() {
    return gebiet;
  }

  @Override
  public Gruppe getGruppe() {
    return gruppe;
  }
}
