blob: 5809df8fe85d691807809898f1753b665f355cc1 [file] [log] [blame]
package com.gemstone.gemfire.cache.query.internal.aggregate;
import com.gemstone.gemfire.cache.query.Aggregator;
/**
* Abstract Aggregator class providing support for downcasting the result
*
* @author ashahid
*
*/
public abstract class AbstractAggregator implements Aggregator {
public static Number downCast(double value) {
Number retVal;
if (value % 1 == 0) {
long longValue = (long) value;
if (longValue <= Integer.MAX_VALUE && longValue >= Integer.MIN_VALUE) {
retVal = Integer.valueOf((int) longValue);
} else {
retVal = Long.valueOf(longValue);
}
} else {
if (value <= Float.MAX_VALUE && value >= Float.MIN_VALUE) {
retVal = Float.valueOf((float) value);
} else {
retVal = Double.valueOf(value);
}
}
return retVal;
}
}