rrenkert@8207: package org.dive4elements.river.exports.process; rrenkert@8207: rrenkert@8207: import org.apache.log4j.Logger; rrenkert@8207: import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; rrenkert@8207: import org.dive4elements.river.artifacts.model.FacetTypes; rrenkert@8207: import org.dive4elements.river.artifacts.model.fixings.FixDerivateFacet; rrenkert@8207: import org.dive4elements.river.artifacts.model.fixings.FixFunction; rrenkert@8207: import org.dive4elements.river.exports.DiagramGenerator; rrenkert@8207: import org.dive4elements.river.jfree.JFreeUtil; rrenkert@8207: import org.dive4elements.river.jfree.StyledXYSeries; rrenkert@8207: import org.dive4elements.river.themes.ThemeDocument; rrenkert@8207: rrenkert@8207: rrenkert@8207: public class FixDerivedProcessor rrenkert@8207: extends DefaultProcessor rrenkert@8207: implements FacetTypes rrenkert@8207: { rrenkert@8207: rrenkert@8207: private static Logger log = Logger.getLogger(FixDerivedProcessor.class); rrenkert@8207: rrenkert@8207: public FixDerivedProcessor() { rrenkert@8207: } rrenkert@8207: rrenkert@8207: @Override rrenkert@8207: public void doOut( rrenkert@8207: DiagramGenerator generator, rrenkert@8207: ArtifactAndFacet bundle, rrenkert@8207: ThemeDocument theme, rrenkert@8207: boolean visible rrenkert@8207: ) { rrenkert@8207: FixDerivateFacet facet = (FixDerivateFacet)bundle.getFacet(); rrenkert@8207: FixFunction func = (FixFunction)facet.getData( rrenkert@8207: bundle.getArtifact(), generator.getCallContext()); rrenkert@8207: rrenkert@8207: if (func == null) { rrenkert@8207: log.warn("doOut: Facet does not contain FixFunction"); rrenkert@8207: return; rrenkert@8207: } rrenkert@8207: rrenkert@8207: double maxQ = func.getMaxQ(); rrenkert@8207: rrenkert@8207: if (maxQ > 0) { rrenkert@8207: StyledXYSeries series = JFreeUtil.sampleFunction2D( rrenkert@8207: func.getFunction(), rrenkert@8207: theme, rrenkert@8207: bundle.getFacetDescription(), rrenkert@8207: 500, // number of samples rrenkert@8207: 0.0 , // start rrenkert@8207: maxQ); // end rrenkert@8207: generator.addAxisSeries(series, axisName, visible); rrenkert@8207: } rrenkert@8207: } rrenkert@8207: rrenkert@8207: @Override rrenkert@8207: public boolean canHandle(String facettype) { rrenkert@8207: return FIX_DERIVATE_CURVE.equals(facettype); rrenkert@8207: } rrenkert@8207: }