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
throws ChartException
	{
		if ( ids == null || cmDesignTime == null || bo == null )
		{
			throw new ChartException( ChartEnginePlugin.ID,
					ChartException.GENERATION,
					"exception.illegal.null.value",  
					Messages.getResourceBundle( ) );
		}
		
		if ( rtc == null )
		{
			rtc = new RunTimeContext( );
		}
		
		if ( rtc.getULocale( ) == null )
		{
			rtc.setULocale( ULocale.getDefault( ) );
		}
		
		IChartScriptContext icsc = rtc.getScriptContext( );
		if ( icsc == null )
		{
			
			ChartScriptContext csc = new ChartScriptContext( );
			csc.setChartInstance( (Chart) EcoreUtil.copy( cmDesignTime ) );
			csc.setExternalContext( externalContext );
			csc.setULocale( rtc.getULocale( ) );
			csc.setLogger( logger );
			rtc.setScriptContext( csc );