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

import java.util.Comparator;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.presentation.gebietsbaum.GebietNummerFormatter;

public class GebietByFormattedNummerComparator implements Comparator<Gebiet> {

  private final GebietNummerFormatter gebietNummerFormatter;

  @Inject
  public GebietByFormattedNummerComparator(GebietNummerFormatter gebietNummerFormatter) {
    this.gebietNummerFormatter = gebietNummerFormatter;
  }

  @Override
  public int compare(Gebiet o1, Gebiet o2) {
    String nummer1 = gebietNummerFormatter.getNummer(o1);
    String nummer2 = gebietNummerFormatter.getNummer(o2);

    int result = Integer.compare(nummer1.length(), nummer2.length());
    if (result != 0) {
      return result;
    }

    return nummer1.compareTo(nummer2);
  }

}
