2026-04-08 14:47:42 +02:00
|
|
|
package ecoparasite.representation;
|
|
|
|
|
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Représente un tuple de Valeurs X/Y pour nos données.
|
|
|
|
|
* Ce type de données est utilisé lors de la conversion entre nos données et la partie SVG.
|
|
|
|
|
*/
|
2026-04-08 14:47:42 +02:00
|
|
|
public class ValeursXY {
|
|
|
|
|
|
|
|
|
|
private double x;
|
|
|
|
|
private double y;
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Constructeur
|
|
|
|
|
* @param x Notre valeur correspondant à l'axe X.
|
|
|
|
|
* @param y Notre valeur correspondant à l'axe Y.
|
|
|
|
|
*/
|
2026-04-08 14:47:42 +02:00
|
|
|
public ValeursXY(double x, double y){
|
|
|
|
|
this.x = x;
|
|
|
|
|
this.y = y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public double getX() {
|
|
|
|
|
return x;
|
|
|
|
|
}
|
|
|
|
|
public void setX(double x) {
|
|
|
|
|
this.x = x;
|
|
|
|
|
}
|
|
|
|
|
public double getY() {
|
|
|
|
|
return y;
|
|
|
|
|
}
|
|
|
|
|
public void setY(double y) {
|
|
|
|
|
this.y = y;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Permet de convertir un type de données en valeursXY.
|
|
|
|
|
* @param list Notre liste de données de type T.
|
|
|
|
|
* @param getX Notre getter pour notre valeur symbolisant X.
|
|
|
|
|
* @param getY Notre getter pour notre valeur symbolisant Y.
|
|
|
|
|
* @return Un HashSet de valeursXY.
|
|
|
|
|
* @param <T> Le type de données qui vont être converties.
|
|
|
|
|
* @param <V> Le type de données retournées comme un nombre.
|
|
|
|
|
*/
|
2026-04-08 14:47:42 +02:00
|
|
|
public static <T,V extends Number> HashSet<ValeursXY> convertToXY(HashSet<T> list, Function<T,V> getX, Function<T,V> getY){
|
|
|
|
|
HashSet<ValeursXY> xy = new HashSet<ValeursXY>();
|
|
|
|
|
for(T item : list){
|
|
|
|
|
if(getX.apply(item) != null && getY.apply(item) != null){
|
|
|
|
|
xy.add( new ValeursXY(getX.apply(item).doubleValue(), getY.apply(item).doubleValue()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return xy;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|