
package de.ivu.elect.dokumente.ergebnis.gesamtergebnis;

import java.util.Comparator;
import java.util.List;
import java.util.function.BiFunction;

import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.entity.Stimmabgabeart;
import de.ivu.elect.business.gebietsbaum.boundary.WahlverwaltungGebietInformation;
import de.ivu.elect.dokumente.ergebnis.zusammenstellung.DefaultErgebnisTabellarischTabelleSortierung;
import de.ivu.elect.dokumente.ergebnis.zusammenstellung.ErgebnisTabellarischTabelleSortierung;
import de.ivu.elect.dokumente.ergebnis.zusammenstellung.ErgebnisTabellarischZeile;
import de.ivu.elect.was.exchange.ergebnis.zusammenstellung.ErgebnisZusammenstellungTabelle;

public class ErgebnisGesamtergebnisTabellarischTabelleSortierung implements ErgebnisTabellarischTabelleSortierung {

  @Inject
  private transient DefaultErgebnisTabellarischTabelleSortierung defaultErgebnisTabellarischTabelleSortierung;

  public ErgebnisGesamtergebnisTabellarischTabelleSortierung() {
    super();
  }

  @Override
  public BiFunction<WahlverwaltungGebietInformation, Stimmabgabeart, String> getLabelFctGruppierungStimmabgabearten() {
    return defaultErgebnisTabellarischTabelleSortierung.getLabelFctGruppierungStimmabgabearten();
  }

  @Override
  public BiFunction<WahlverwaltungGebietInformation, Stimmabgabeart, String> getLabelFctZwischensummenGruppierungGesamt() {
    return defaultErgebnisTabellarischTabelleSortierung.getLabelFctZwischensummenGruppierungGesamt();
  }

  @Override
  public BiFunction<WahlverwaltungGebietInformation, Stimmabgabeart, String> getLabelFctZwischensummenGruppierungStimmabgabearten() {
    return defaultErgebnisTabellarischTabelleSortierung.getLabelFctZwischensummenGruppierungStimmabgabearten();
  }

  @Override
  public List<ErgebnisTabellarischTabelleSortierungGruppierung> collectGruppierungshierarchieDesc(ErgebnisZusammenstellungTabelle tabelle) {
    return defaultErgebnisTabellarischTabelleSortierung.collectGruppierungshierarchieDesc(tabelle);
  }

  @Override
  public Comparator<ErgebnisTabellarischZeile> comparator(ErgebnisZusammenstellungTabelle tabelle) {
    return defaultErgebnisTabellarischTabelleSortierung.comparator(tabelle);
  }
}
