package hudson.plugins.testabilityexplorer.report.health; import org.jfree.chart.JFreeChart; import hudson.plugins.testabilityexplorer.report.charts.ChartBuilder; import hudson.plugins.testabilityexplorer.report.charts.TestabilityChartBuilder; import hudson.plugins.testabilityexplorer.report.charts.RangedTrend; /** * A {@link ReportBuilder} that can created Charts. * * @author reik.schatz */ public abstract class DrawingReportBuilder implements ReportBuilder { private final ChartBuilder m_chartBuilder; protected DrawingReportBuilder(ChartBuilder chartBuilder) { m_chartBuilder = chartBuilder; } /** * Returns a {@link JFreeChart} based on the given {@link RangedTrend}. Will * never return {@code null}. * * @throws IllegalArgumentException if the given rangedTrend is {@code null} * * @param rangedTrend a RangedTrend to feed the JFreeChart with * @return JFreeChart */ public JFreeChart createGraph(final RangedTrend rangedTrend) { if (rangedTrend == null) { throw new IllegalArgumentException("Parameter rangedTrend must not be null."); } ChartBuilder chartBuilder = m_chartBuilder; if (chartBuilder == null) { chartBuilder = new TestabilityChartBuilder(); } return chartBuilder.createChart(rangedTrend); } }