Bug 180249 BPS39 - Centralized Chart Engine API
Centralized and clearer Engine API -Create one single entry point class ChartEngine in an api package so it's easy to find (with access to IGenerator, Serializer, Device Renderers) -Create a new IGenerator interface instead of exposing the Generator class.
chart/org.eclipse.birt.chart.engine/src/org/eclipse/birt/chart/factory/Generator.java
Chart cm = gcs.getChartModel( );
		ScriptHandler.callFunction( gcs.getRunTimeContext( ).getScriptHandler( ),
				ScriptHandler.BEFORE_COMPUTATIONS,
				cm,
				gcs.getComputations( ) );
		
		long lTimer = System.currentTimeMillis( );
		int iChartType = gcs.getType( );
		Bounds boPlot = cm.getPlot( ).getBounds( );
		Insets insPlot = cm.getPlot( ).getInsets( );
		boPlot = boPlot.adjustedInstance( insPlot );
		if ( iChartType == WITH_AXES )
		{
			PlotWithAxes pwa = (PlotWithAxes) gcs.getComputations( );
			try
			{
				pwa.compute( boPlot );
			}
			catch ( RuntimeException ex )
			{
				throw new ChartException( ChartEnginePlugin.ID,
						ChartException.GENERATION,
						ex );
			}
			logger.log( ILogger.INFORMATION,
					Messages.getString( "info.compute.elapsed.time.with.axes", 
							new Object[]{
								new Long( System.currentTimeMillis( ) - lTimer )
							},
							gcs.getRunTimeContext( ).getULocale( ) ) );