/******************************************************************************* * * Copyright (c) 2004-2011 Oracle Corporation. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Kohsuke Kawaguchi, Winston Prakash * * *******************************************************************************/ package org.eclipse.hudson.graph; import java.util.ArrayList; import java.util.List; /** * Builds {@link CategoryDataset}. * * <p> This code works around an issue in {@link DefaultCategoryDataset} where * order of addition changes the way they are drawn. * * @param <Row> Names that identify different graphs drawn in the same chart. * @param <Column> X-axis. */ public final class DataSet<Row extends Comparable, Column extends Comparable> { private List<Number> values = new ArrayList<Number>(); private List<Row> rows = new ArrayList<Row>(); private List<Column> columns = new ArrayList<Column>(); //Included to set data as series definition (to be used by graphing support like BIRT Chart) private GraphSeries<String> graphXSeries; private List<GraphSeries<Number>> graphYSeriesList = new ArrayList<GraphSeries<Number>>(); public void add(Number value, Row rowKey, Column columnKey) { values.add(value); rows.add(rowKey); columns.add(columnKey); } public List<Column> getColumns() { return columns; } public void setColumns(List<Column> columns) { this.columns = columns; } public List<Row> getRows() { return rows; } public void setRows(List<Row> rows) { this.rows = rows; } public List<Number> getValues() { return values; } public void setValues(List<Number> values) { this.values = values; } public GraphSeries getXSeries() { return graphXSeries; } public void setXSeries(GraphSeries<String> series) { graphXSeries = series; } public List<GraphSeries<Number>> getYSeries() { return graphYSeriesList; } public void addYSeries(GraphSeries<Number> series) { graphYSeriesList.add(series); } public void reverseOrder(){ graphXSeries.reverseOrder(); for (GraphSeries<Number> grpahYSeries : graphYSeriesList) { grpahYSeries.reverseOrder(); } } }