package io.searchbox.core.search.aggregation;
import com.google.gson.JsonObject;
import java.util.Objects;
import static io.searchbox.core.search.aggregation.AggregationField.*;
/**
* @author cfstout
*/
public class ExtendedStatsAggregation extends StatsAggregation {
private Double sumOfSquares;
private Double variance;
private Double stdDeviation;
public ExtendedStatsAggregation(String name, JsonObject extendedStatsAggregation) {
super(name, extendedStatsAggregation);
this.sumOfSquares = !extendedStatsAggregation.has(String.valueOf(SUM_OF_SQUARES)) || extendedStatsAggregation.get(String.valueOf(SUM_OF_SQUARES)).isJsonNull() ?
null : extendedStatsAggregation.get(String.valueOf(SUM_OF_SQUARES)).getAsDouble();
this.variance = !extendedStatsAggregation.has(String.valueOf(VARIANCE)) || extendedStatsAggregation.get(String.valueOf(VARIANCE)).isJsonNull() ?
null : extendedStatsAggregation.get(String.valueOf(VARIANCE)).getAsDouble();
this.stdDeviation = !extendedStatsAggregation.has(String.valueOf(STD_DEVIATION)) || extendedStatsAggregation.get(String.valueOf(STD_DEVIATION)).isJsonNull() ?
null : extendedStatsAggregation.get(String.valueOf(STD_DEVIATION)).getAsDouble();
}
/**
* @return Sum of Squares for the aggregated data if found, null otherwise
*/
public Double getSumOfSquares() {
return sumOfSquares;
}
/**
* @return Variance of the aggregated data if found, null otherwise
*/
public Double getVariance() {
return variance;
}
/**
* @return Standard deviation of the aggregated data if found, null otherwise
*/
public Double getStdDeviation() {
return stdDeviation;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
ExtendedStatsAggregation rhs = (ExtendedStatsAggregation) obj;
return super.equals(obj)
&& Objects.equals(stdDeviation, rhs.stdDeviation)
&& Objects.equals(sumOfSquares, rhs.sumOfSquares)
&& Objects.equals(variance, rhs.variance);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(),
sumOfSquares,
variance,
stdDeviation);
}
}