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

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

import de.ivu.elect.business.gebietsbaum.control.GebietByBreadthFirstComparator;
import de.ivu.elect.business.stimmzettel.entity.Stimmzettel;

public class StimmzettelGebietUndNummerComparator implements Comparator<Stimmzettel>, Serializable {


  public static final StimmzettelGebietUndNummerComparator INSTANCE = new StimmzettelGebietUndNummerComparator();

  private static final long serialVersionUID = 1L;

  @Override
  public int compare(Stimmzettel o1, Stimmzettel o2) {
    int result = GebietByBreadthFirstComparator.INSTANCE.compare(o1.getGebiet(), o2.getGebiet());
    if (result == 0) {
      result = o1.getPrefixVorNummer().compareTo(o2.getPrefixVorNummer());
    }
    if (result == 0) {
      result = Long.compare(o1.getNummerAsLong(), o2.getNummerAsLong());
    }

    return result;
  }
}
