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

import java.util.ArrayList;
import java.util.List;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.hochrechnung.entity.AbstandGetter;
import de.ivu.elect.business.hochrechnung.entity.GebietDaten;
import de.ivu.elect.business.hochrechnung.entity.GewichtetesObject;
import de.ivu.elect.business.hochrechnung.entity.KoordinatenInformationen;

public class DistancesZwischenGebieten <N extends Number> {
  public List<GewichtetesObject<Gebiet>> getAbstaendenVonGebietZuAllenAnderen (GebietDaten<N> gebietDaten, List<GebietDaten<N>> alleGebietDaten, AbstandGetter<N> abstandGetter, KoordinatenInformationen koordinatenInformationen) {
    List<GewichtetesObject<Gebiet>> result = new ArrayList<>();
    for (GebietDaten<N> nachbar: alleGebietDaten) {
      if (nachbar != null && gebietDaten != nachbar) {
        result.add(new GewichtetesObject<>(nachbar.getGebiet(), abstandGetter.getAbstand(gebietDaten, nachbar, koordinatenInformationen)));
      }
    }
    return result;
  }
}