package net.naonedbus.comparator;
import java.util.Comparator;
import net.naonedbus.bean.Bicloo;
import net.naonedbus.bean.Equipement;
import android.location.Location;
public class BiclooDistanceComparator implements Comparator<Bicloo> {
/**
* Référentiel servant à la comparaison via la méthode
* {@link #referentielCompare(Equipement, Equipement)}.
*/
private Location mReferentiel;
public void setReferentiel(final Location referentiel) {
mReferentiel = referentiel;
}
@Override
public int compare(final Bicloo e1, final Bicloo e2) {
if (e1 == null || e2 == null)
return 0;
if (mReferentiel == null)
return 0;
return referentielCompare(e1, e2);
}
/**
* Comparer les 2 équipements par rapport au {@link #mReferentiel}
*
* @param e1
* @param e2
* @return
*/
private int referentielCompare(final Bicloo e1, final Bicloo e2) {
if (e1.getLocation() == null || e1.getLocation() == null)
return 0;
final Float distance1 = mReferentiel.distanceTo(e1.getLocation());
final Float distance2 = mReferentiel.distanceTo(e2.getLocation());
return distance1.compareTo(distance2);
}
}