Package org.eclipse.birt.chart.factory

# Interface IGenerator

All Known Implementing Classes:
  `Generator`

public interface IGenerator
Provides an entry point into building a chart for a given model. It is implemented as a singleton and does not maintain any state information hence allowing multi-threaded requests for a single generator instance.

## Method Summary

Modifier and Type
Method
Description
`void`
`bindData(ResultSet resultSet, Chart chart, RunTimeContext rtc)`
Binds a sql Resuset to a chart model.
`void`
`bindData(IDataRowExpressionEvaluator expressionEvaluator, IActionEvaluator iae, Chart chart, RunTimeContext rtc)`
Binds data to the chart model using a row expression evaluator.
`void`
`bindData(IDataRowExpressionEvaluator expressionEvaluator, Chart chart, RunTimeContext rtc)`
Binds data to the chart model using a row expression evaluator.
`GeneratedChartState`
`build(IDisplayServer ids, Chart cmDesignTime, Bounds bo, IExternalContext externalContext, RunTimeContext rtc)`
Builds and computes preferred sizes of various chart components offscreen using the provided display server.
`GeneratedChartState`
`build(IDisplayServer ids, Chart cmDesignTime, Bounds bo, IExternalContext externalContext, RunTimeContext rtc, org.eclipse.birt.chart.style.IStyleProcessor externalProcessor)`
Builds and computes preferred sizes of various chart components offscreen using the provided display server.
`RunTimeContext`
`prepare(Chart model, IExternalContext externalContext, IScriptClassLoader iscl, com.ibm.icu.util.ULocale locale)`
Since v2, it must be called before build( ), and should only be called once per design model.
`void`
`refresh(GeneratedChartState gcs)`
Performs a minimal rebuild of the chart if non-sizing attributes are altered or the dataset for any series has changed.
`void`
`render(IDeviceRenderer idr, GeneratedChartState gcs)`
Draws a previously built chart using the specified device renderer into a target output device.

## Method Details

### prepare

RunTimeContext prepare(Chart model, IExternalContext externalContext, IScriptClassLoader iscl, com.ibm.icu.util.ULocale locale) throws ChartException
Since v2, it must be called before build( ), and should only be called once per design model.

Parameters:
  `model` - Chart design model
  `externalContext` - External Context
  `locale` - Locale
Returns:
  a runtime context used by build( )
Throws:
  `ChartException`
Since:
  2.1

### bindData

void bindData(ResultSet resultSet, Chart chart, RunTimeContext rtc) throws ChartException
Binds a sql Resuset to a chart model. This is based on the assumption the column names of the resultset match exactly the data query definitions and other expressions set inside the chart model.

Parameters:
  `resultSet` - A sql resultset that contains the data. The following methods of the interface need to be implemented: first(), next(), getObject(String), close()
  `chart` - The chart model to bind the data to
  `rtc` - The runtime context
Throws:
  `ChartException`
Since:
  2.0

### bindData

void bindData(IDataRowExpressionEvaluator expressionEvaluator, Chart chart, RunTimeContext rtc) throws ChartException
Binds data to the chart model using a row expression evaluator. The evaluator provides the ability to evaluate the expressions set in the chart on a row context.

Parameters:
  `expressionEvaluator` - The data row expression evaluator implementation
  `chart` - The chart model
  `rtc` - The runtime context
Throws:
  `ChartException`
Since:
  2.0

### bindData

void bindData(IDataRowExpressionEvaluator expressionEvaluator, IActionEvaluator iae, Chart chart, RunTimeContext rtc) throws ChartException
Binds data to the chart model using a row expression evaluator. The evaluator provides the ability to evaluate the expressions set in the chart on a row context.If the given IActionEvaluator is not null, then it will also search available expressions within the action and bind it as the user dataSets.

Parameters:
  `expressionEvaluator` - The data row expression evaluator implementation
  `iae` - An IActionEvaluator instance.
  `chart` - The chart model
  `rtc` - The runtime context
Throws:
  `ChartException`
Since:
  2.0

### build

GeneratedChartState build(IDisplayServer ids, Chart cmDesignTime, Bounds bo, IExternalContext externalContext, RunTimeContext rtc) throws ChartException
Builds and computes preferred sizes of various chart components offscreen using the provided display server.

Parameters:
  `ids` - A display server using which the chart may be built.
  `cmDesignTime` - The design time chart model (bound to a dataset).
  `bo` - The bounds associated with the chart being built.
  `externalContext` - An external context object.
  `rtc` - Encapsulates the runtime environment for the build process.
Returns:
  An instance of a generated chart state that encapsulates built chart information that may be subsequently rendered.
Throws:
  `ChartException`

### build

GeneratedChartState build(IDisplayServer ids, Chart cmDesignTime, Bounds bo, IExternalContext externalContext, RunTimeContext rtc, org.eclipse.birt.chart.style.IStyleProcessor externalProcessor) throws ChartException
Builds and computes preferred sizes of various chart components offscreen using the provided display server.

Parameters:
  `ids` - A display server using which the chart may be built.
  `cmDesignTime` - The design time chart model (bound to a dataset).
  `bo` - The bounds associated with the chart being built.
  `externalContext` - An external context object.
  `rtc` - Encapsulates the runtime environment for the build process.
  `externalProcessor` - An external style processor. If it's null, an implicit processor will be used.
Returns:
  An instance of a generated chart state that encapsulates built chart information that may be subsequently rendered.
Throws:
  `ChartException`

### render

void render(IDeviceRenderer idr, GeneratedChartState gcs) throws ChartException
Draws a previously built chart using the specified device renderer into a target output device.

Parameters:
  `idr` - A device renderer that determines the target context on which the chart will be rendered.
  `gcs` - A previously built chart that needs to be rendered.
Throws:
  `ChartException`

### refresh

void refresh(GeneratedChartState gcs) throws ChartException
Performs a minimal rebuild of the chart if non-sizing attributes are altered or the dataset for any series has changed. However, if sizing attribute changes occur that affects the relative position of the various chart subcomponents, a re-build is required.

Parameters:
  `gcs` - A previously built chart encapsulated in a transient structure.
Throws:
  `ChartException`