@Override
	public DataTable generateDataTable (Query query, HttpServletRequest request) throws DataSourceException
	{
		DataTable dataTable = null;
		
		try (final Reader reader = new FilterCsv (new BufferedReader (new InputStreamReader (new URL (this.urlYahoo).openStream()))))
		{
			TableRow row = new TableRow ();
			
			dataTable = CsvDataSourceHelper.read(reader, this.column, false);
			
			dataTable.addColumn(new ColumnDescription (FieldCurrency.USD_CAD.toString(), ValueType.TEXT, FieldCurrency.USD_CAD.toString()));
			dataTable.addColumn(new ColumnDescription (FieldCurrency.USD_YEN.toString(), ValueType.TEXT, FieldCurrency.USD_YEN.toString()));
			dataTable.addColumn(new ColumnDescription (FieldCurrency.USD_YUAN.toString(), ValueType.TEXT, FieldCurrency.USD_YUAN.toString()));
			
			for (int i = 0; i < dataTable.getNumberOfRows(); i++)
			{
				String lastPriceDataTable = dataTable.getCell(i, 0).toString();
				
				if (! lastPriceDataTable.matches(".*\\d.*"))
					lastPriceDataTable = "0";
				
				String lastPriceString = this.formatter.format(Double.parseDouble(lastPriceDataTable));
				
				row.addCell(lastPriceString);
			}
			
			dataTable.addRow(row);
		}
		catch (MalformedURLException e)
		{
			System.out.println("TableCurrency generateDataTable() MalformedURLException " + "URL : " + this.urlYahoo + " " + e);
		}
		catch (IOException e)
		{
			System.out.println("TableCurrency generateDataTable() IOException " + e);
		}
		
		return dataTable;
	}