/* * StatisticsNormalizer.java * * Created on January 23, 2001, 6:13 PM */ package jas.hist.normalization; import jas.hist.DataSource; import jas.hist.ExtendedStatistics; import jas.hist.HasStatistics; import jas.hist.Statistics; /** * A normalizer that calculates a normalization factor based on a specific statistics entry * @author tonyj * @version $Id: StatisticsNormalizer.java 13351 2007-09-21 18:46:46Z serbo $ */ public class StatisticsNormalizer extends DataSourceNormalizer { /** Creates new StatisticsNormalizer * @param source The data source * @param statsName The name of the statistic */ public StatisticsNormalizer(DataSource source, String statsName) { super(source); this.statsName = statsName; init(); } protected double calculateNormalization() { if (source instanceof HasStatistics) { Statistics stats = ((HasStatistics) source).getStatistics(); double stat = stats.getStatistic(statsName); if (stat == 0 && stats instanceof ExtendedStatistics) { Object obj = ((ExtendedStatistics) stats).getExtendedStatistic(statsName); try { stat = Double.parseDouble(obj.toString()); } catch (NumberFormatException e) { stat = 0; } } return stat > 0 ? stat : 1; } else return 1; } private String statsName; }