protected ExportData createExportData() throws RrdException
	{
		if ( sources == null)
			throw new RrdException( "Sources not calculated, no data to return." );
		
		// Now create a RrdDataSet object containing the results
		Source[] sourceSet;
		String[][] export 	= def.getExportDatasources();
		HashMap legends		= new HashMap( export.length );

		if ( def.isStrict() )
		{
			sourceSet			= new Def[ export.length ];
			for ( int i = 0; i < export.length; i++ )
				sourceSet[i] = createReducedDef( getSource( export[i][0] ) );
		}
		else
		{
			sourceSet			= new Def[ sources.length ];
			for ( int i = 0; i < sources.length; i++ )
			{
				sourceSet[i] = createReducedDef( sources[i] );
				legends.put( sourceSet[i].getName(), sourceSet[i].getName() );
			}
		}

		for ( int i = 0; i < export.length; i++ )
			legends.put( export[i][0], export[i][1] );

		long[] reducedTs = new long[ reducedNumRows ];
		System.arraycopy( timestamps, 0, reducedTs, 0, reducedNumRows );

		return new ExportData( reducedTs, sourceSet, legends );
	}