franta-hg@1: package de.laures.cewolf.dp; franta-hg@1: franta-hg@1: import java.io.Serializable; franta-hg@1: import java.util.Date; franta-hg@1: import java.util.Map; franta-hg@1: franta-hg@1: import org.apache.commons.logging.Log; franta-hg@1: import org.apache.commons.logging.LogFactory; franta-hg@1: import org.jfree.data.general.Dataset; franta-hg@1: import org.jfree.data.time.MovingAverage; franta-hg@1: import org.jfree.data.xy.XYDataset; franta-hg@1: franta-hg@1: import de.laures.cewolf.DatasetProduceException; franta-hg@1: import de.laures.cewolf.DatasetProducer; franta-hg@1: franta-hg@1: /** franta-hg@1: * @author guido franta-hg@1: * franta-hg@1: * To change this generated comment edit the template variable "typecomment": franta-hg@1: * Window>Preferences>Java>Templates. franta-hg@1: * To enable and disable the creation of type comments go to franta-hg@1: * Window>Preferences>Java>Code Generation. franta-hg@1: */ franta-hg@1: public class MovingAverageDatasetProducer implements DatasetProducer, Serializable { franta-hg@1: franta-hg@1: private static final Log log = LogFactory.getLog(MovingAverageDatasetProducer.class); franta-hg@1: franta-hg@1: /** franta-hg@1: * @see de.laures.cewolf.DatasetProducer#produceDataset(Map) franta-hg@1: */ franta-hg@1: public Object produceDataset(Map params) throws DatasetProduceException { franta-hg@1: log.debug(params); franta-hg@1: DatasetProducer datasetProducer = (DatasetProducer)params.get("producer"); franta-hg@1: log.debug(datasetProducer); franta-hg@1: Dataset dataset = (Dataset)datasetProducer.produceDataset(params); franta-hg@1: String suffix = (String)params.get("suffix"); franta-hg@1: int period = ((Integer)params.get("period")).intValue(); franta-hg@1: int skip = ((Integer)params.get("skip")).intValue(); franta-hg@1: if(dataset instanceof XYDataset){ franta-hg@1: return MovingAverage.createMovingAverage((XYDataset)dataset, suffix, period, skip); franta-hg@1: } else { franta-hg@1: throw new DatasetProduceException("moving average only supported for XYDatasets"); franta-hg@1: } franta-hg@1: } franta-hg@1: franta-hg@1: /** franta-hg@1: * @see de.laures.cewolf.DatasetProducer#hasExpired(Map, Date) franta-hg@1: */ franta-hg@1: public boolean hasExpired(Map params, Date since) { franta-hg@1: return true; franta-hg@1: } franta-hg@1: franta-hg@1: /** franta-hg@1: * @see de.laures.cewolf.DatasetProducer#getProducerId() franta-hg@1: */ franta-hg@1: public String getProducerId() { franta-hg@1: return getClass().getName(); franta-hg@1: } franta-hg@1: franta-hg@1: }