2026-03-31 19:00:19 +02:00
|
|
|
package ecoparasite.population;
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Classe qui permet de gérer un intervalle de données issues d'un CSV.
|
|
|
|
|
*
|
|
|
|
|
* Trois données : minimum, maximum et moyenne entre minimum et maximum.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
public class PopulationArgInterval {
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Valeur minimale.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
private Double min;
|
2026-04-01 14:34:07 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Valeur maximale.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
private Double max;
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Moyenne entre la valeur minimale et maximale.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
private Double mean;
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Constructeur. La moyenne doit être précisée.
|
|
|
|
|
* @param min Valeur minimale
|
|
|
|
|
* @param max Valeur maximale
|
|
|
|
|
* @param mean Moyenne
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
public PopulationArgInterval(Double min, Double max, Double mean) {
|
|
|
|
|
this.min = min;
|
|
|
|
|
this.max = max;
|
|
|
|
|
this.mean = mean;
|
|
|
|
|
}
|
2026-04-01 14:34:07 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Constructeur. La moyenne est calculé automatiquement.
|
|
|
|
|
* @param min Valeur minimale
|
|
|
|
|
* @param max Valeur maximale.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
public PopulationArgInterval(Double min, Double max) {
|
|
|
|
|
this.min = min;
|
|
|
|
|
this.max = max;
|
|
|
|
|
this.mean = ( this.max + this.min ) / 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Double getMin() {
|
|
|
|
|
return this.min;
|
|
|
|
|
}
|
|
|
|
|
public Double getMax() {
|
|
|
|
|
return this.max;
|
|
|
|
|
}
|
|
|
|
|
public Double getMean() {
|
|
|
|
|
return this.mean;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Permet de transformer un intervalle en double.
|
|
|
|
|
* Si le minimum est égal au maximum, cette valeur est retourné.
|
|
|
|
|
* Sinon la moyenne est retourné.
|
|
|
|
|
*
|
|
|
|
|
* @return La valeur transformée en Double.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
public Double transformToDouble(){
|
|
|
|
|
if( this.min == this.max )
|
|
|
|
|
return this.min;
|
|
|
|
|
return this.mean;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-01 14:34:07 +02:00
|
|
|
/**
|
|
|
|
|
* Permet de transformer une String (Extraite d'un fichier CSV) et de la transformer en Intervalle.
|
|
|
|
|
* Gère les séparateurs +/- ainsi que l'entre deux. Sinon, elle sera juste convertie avec minimum = maximum.
|
|
|
|
|
*
|
|
|
|
|
* @param rawValue La valeur brute.
|
|
|
|
|
* @return La valeur en tant qu'intervalle.
|
|
|
|
|
*/
|
2026-03-31 19:00:19 +02:00
|
|
|
public static PopulationArgInterval fromString( String rawValue ){
|
|
|
|
|
|
|
|
|
|
if( rawValue.contains( "±" ) ){ // Plus ou moins.
|
|
|
|
|
|
|
|
|
|
String[] numbers = rawValue.split("±");
|
|
|
|
|
Double mean = Double.parseDouble(numbers[0].trim());
|
|
|
|
|
Double interval = Double.parseDouble(numbers[1].trim());
|
|
|
|
|
return new PopulationArgInterval(mean - interval, mean + interval, mean);
|
|
|
|
|
|
|
|
|
|
} else if( rawValue.contains( "-" ) ){ // Entre.
|
|
|
|
|
|
|
|
|
|
String[] numbers = rawValue.split("-");
|
|
|
|
|
Double min = Double.parseDouble(numbers[0].trim());
|
|
|
|
|
Double max = Double.parseDouble(numbers[1].trim());
|
|
|
|
|
return new PopulationArgInterval(min, max);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
Double number = Double.parseDouble(rawValue);
|
|
|
|
|
return new PopulationArgInterval(number, number);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|