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

import java.io.Serializable;
import java.util.Comparator;

import de.ivu.elect.business.ergebnis.control.StimmenPool;
import de.ivu.elect.business.ergebnis.control.StimmenPoolFactory;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebiet;

public class GruppeImGebietByStimmenVorperiodeAbsteigendComparator implements Comparator<GruppeImGebiet>, Serializable {

  private static final long serialVersionUID = 1L;

  private final StimmenPoolFactory stimmenPoolFactory;

  public GruppeImGebietByStimmenVorperiodeAbsteigendComparator(StimmenPoolFactory stimmenPoolFactory) {
    this.stimmenPoolFactory = stimmenPoolFactory;
  }

  @Override
  public int compare(GruppeImGebiet one, GruppeImGebiet another) {
    StimmenPool stimmenPoolVorperiode = stimmenPoolFactory.createStimmenPoolVorperiode(one.getWahl());
    return another. getAnzahlListenStimmenVorperiodeKumuliert(stimmenPoolVorperiode).compareTo(
        one.getAnzahlListenStimmenVorperiodeKumuliert(stimmenPoolVorperiode));
  }
}
