/*
   * (non-Javadoc)
   *
   * @see org.eclipse.birt.chart.ui.swt.DefaultSeriesUIProvider#validateSeriesBindingType(org.eclipse.birt.chart.model.component.Series,
   *      org.eclipse.birt.chart.ui.swt.interfaces.IDataServiceProvider)
   */
  public void validateSeriesBindingType(Series series, IDataServiceProvider idsp)
      throws ChartException {
    ArrayList<Query> al = new ArrayList<Query>();
    al.addAll(series.getDataDefinition());
    for (int i = 0; i < al.size(); i++) {
      Query query = al.get(i);
      DataType dataType = idsp.getDataType(query.getDefinition());

      if ((i != 2) && (dataType == DataType.TEXT_LITERAL || dataType == DataType.NUMERIC_LITERAL)) {
        final ExpressionCodec codec = ChartModelHelper.instance().createExpressionCodec();
        codec.decode(query.getDefinition());
        throw new ChartException(
            ChartUIExtensionPlugin.ID, ChartException.DATA_BINDING, codec.getExpression());
      }
    }
  }