java/cewolf-1.0/src/main/java/de/laures/cewolf/dp/MovingAverageDatasetProducer.java
author František Kučera <franta-hg@frantovo.cz>
Sat, 28 Feb 2009 21:31:02 +0100
changeset 1 639991d0808a
permissions -rw-r--r--
Rozbalená knihovna verze 1.0
     1 package de.laures.cewolf.dp;
     2 
     3 import java.io.Serializable;
     4 import java.util.Date;
     5 import java.util.Map;
     6 
     7 import org.apache.commons.logging.Log;
     8 import org.apache.commons.logging.LogFactory;
     9 import org.jfree.data.general.Dataset;
    10 import org.jfree.data.time.MovingAverage;
    11 import org.jfree.data.xy.XYDataset;
    12 
    13 import de.laures.cewolf.DatasetProduceException;
    14 import de.laures.cewolf.DatasetProducer;
    15 
    16 /**
    17  * @author guido
    18  *
    19  * To change this generated comment edit the template variable "typecomment":
    20  * Window>Preferences>Java>Templates.
    21  * To enable and disable the creation of type comments go to
    22  * Window>Preferences>Java>Code Generation.
    23  */
    24 public class MovingAverageDatasetProducer implements DatasetProducer, Serializable {
    25 	
    26 	private static final Log log = LogFactory.getLog(MovingAverageDatasetProducer.class);
    27 
    28 	/**
    29 	 * @see de.laures.cewolf.DatasetProducer#produceDataset(Map)
    30 	 */
    31 	public Object produceDataset(Map params) throws DatasetProduceException {
    32 		log.debug(params);
    33 		DatasetProducer datasetProducer = (DatasetProducer)params.get("producer");
    34 		log.debug(datasetProducer);
    35 		Dataset dataset = (Dataset)datasetProducer.produceDataset(params);
    36 		String suffix = (String)params.get("suffix");
    37 		int period = ((Integer)params.get("period")).intValue();
    38 		int skip = ((Integer)params.get("skip")).intValue();
    39 		if(dataset instanceof XYDataset){
    40 	        return MovingAverage.createMovingAverage((XYDataset)dataset, suffix, period, skip);
    41 		} else {
    42 			throw new DatasetProduceException("moving average only supported for XYDatasets");
    43 		}
    44 	}
    45 
    46 	/**
    47 	 * @see de.laures.cewolf.DatasetProducer#hasExpired(Map, Date)
    48 	 */
    49 	public boolean hasExpired(Map params, Date since) {
    50 		return true;
    51 	}
    52 
    53 	/**
    54 	 * @see de.laures.cewolf.DatasetProducer#getProducerId()
    55 	 */
    56 	public String getProducerId() {
    57 		return getClass().getName();
    58 	}
    59 
    60 }