}
if (xData != null && xData.size() == 0) {
throw new IllegalArgumentException("X-Axis data cannot be empty!!!");
}
Series series = null;
if (xData != null) {
// inspect the series to see what kind of data it contains (Number, Date or String)
Iterator<?> itr = xData.iterator();
Object dataPoint = itr.next();
if (dataPoint instanceof Number) {
xAxis.setAxisType(AxisType.Number);
}
else if (dataPoint instanceof Date) {
xAxis.setAxisType(AxisType.Date);
}
else if (dataPoint instanceof String) {
if (getChartPainter().getStyleManager().getChartType() != ChartType.Bar) {
throw new RuntimeException("X-Axis data types of String can only be used for Bar Charts!!!");
}
xAxis.setAxisType(AxisType.String);
}
else {
throw new RuntimeException("Series data must be either Number, Date or String type!!!");
}
yAxis.setAxisType(AxisType.Number);
series = new Series(seriesName, xData, xAxis.getAxisType(), yData, yAxis.getAxisType(), errorBars, seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle());
}
else { // generate xData
List<Double> generatedXData = new ArrayList<Double>();
for (int i = 1; i < yData.size() + 1; i++) {
generatedXData.add((double) i);
}
xAxis.setAxisType(AxisType.Number);
yAxis.setAxisType(AxisType.Number);
series = new Series(seriesName, generatedXData, xAxis.getAxisType(), yData, yAxis.getAxisType(), errorBars, seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle());
}
switch (chartPainter.getStyleManager().getChartType()) {
case Area:
series.setSeriesType(Series.SeriesType.Area);
break;
case Line:
series.setSeriesType(Series.SeriesType.Line);
}
// Sanity check
if (xData != null && xData.size() != yData.size()) {
throw new IllegalArgumentException("X and Y-Axis sizes are not the same!!!");