Files
ecoparasite-data-analyse/src/ecoparasite/population/PopulationArgInterval.java

102 lines
2.8 KiB
Java
Raw Normal View History

package ecoparasite.population;
/**
* 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.
*/
public class PopulationArgInterval {
/**
* Valeur minimale.
*/
private Double min;
/**
* Valeur maximale.
*/
private Double max;
/**
* Moyenne entre la valeur minimale et maximale.
*/
private Double mean;
/**
* Constructeur. La moyenne doit être précisée.
* @param min Valeur minimale
* @param max Valeur maximale
* @param mean Moyenne
*/
public PopulationArgInterval(Double min, Double max, Double mean) {
this.min = min;
this.max = max;
this.mean = mean;
}
/**
* Constructeur. La moyenne est calculé automatiquement.
* @param min Valeur minimale
* @param max Valeur maximale.
*/
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;
}
/**
* 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.
*/
public Double transformToDouble(){
if( this.min == this.max )
return this.min;
return this.mean;
}
/**
* 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.
*/
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);
2026-04-08 10:32:11 +02:00
} 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);
}
}
}