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
gcs.getRunTimeContext( )
				.setStructureDefinitionListener( idr.needsStructureDefinition( ) ? idr
						: null );
		idr.before( ); 
		for ( int i = 0; i < iSize; i++ )
		{
			br = lirha[i].getRenderer( );
			br.set( dc );
			br.set( idr );
			br.set( gcs.getRunTimeContext( ) );
			try
			{
				br.render( lhm, bo ); 
				
			}
			catch ( RuntimeException ex )
			{
				throw new ChartException( ChartEnginePlugin.ID,
						ChartException.RENDERING,
						ex );
			}
		}
		idr.after( ); 
		
		gcs.getRunTimeContext( ).clearState( );
		ScriptHandler.callFunction( gcs.getRunTimeContext( ).getScriptHandler( ),
				ScriptHandler.FINISH_RENDERING,
				gcs );
		ScriptHandler.callFunction( gcs.getRunTimeContext( ).getScriptHandler( ),
				ScriptHandler.AFTER_RENDERING,