package org.moskito.demo.burgershop.burgershopspring.service.stats; import net.anotheria.moskito.core.decorators.AbstractDecorator; import net.anotheria.moskito.core.decorators.value.DoubleValueAO; import net.anotheria.moskito.core.decorators.value.LongValueAO; import net.anotheria.moskito.core.decorators.value.StatValueAO; import net.anotheria.moskito.core.producers.IStats; import net.anotheria.moskito.core.stats.TimeUnit; import java.util.ArrayList; import java.util.List; /** * TODO comment this class * * @author lrosenberg * @since 12.12.13 23:24 */ public class SalesStatsDecorator extends AbstractDecorator { /** * Captions. */ static final String CAPTIONS[] = { "Sales", "Volume", "Avg" }; /** * Short explanations. */ static final String SHORT_EXPLANATIONS[] = { "Number of sales", "Total earnings", "Avg earnings" }; /** * Explanations. */ static final String EXPLANATIONS[] = { "Total number of sales for this ingredient", "Total earnings from sales of this ingredient", "Average earnings per sale for this ingredient", }; /** * Creates a new decorator object with given name. */ protected SalesStatsDecorator(){ super("Sales", CAPTIONS, SHORT_EXPLANATIONS, EXPLANATIONS); } @Override public List<StatValueAO> getValues(IStats statsObject, String interval, TimeUnit unit) { SalesStats stats = (SalesStats)statsObject; List<StatValueAO> ret = new ArrayList<StatValueAO>(CAPTIONS.length); int i = 0; long totalSales = stats.getNumber(interval); ret.add(new LongValueAO(CAPTIONS[i++], totalSales)); ret.add(new LongValueAO(CAPTIONS[i++], stats.getVolume(interval))); ret.add(new DoubleValueAO(CAPTIONS[i++], stats.getAverageVolume(interval))); return ret; } }