Package org.eclipse.birt.report.model.api

# Class DesignEngine

java.lang.Object
org.eclipse.birt.report.model.api.DesignEngine

All Implemented Interfaces:
  `IDesignEngine`

public final class DesignEngine extends Object implements IDesignEngine
Represents the BIRT design engine as a whole. Used to create new designs or open existing designs.

The design engine uses meta-data defined in an external file. This file is defined by BIRT and should both be available and valid. However, if an application wants to catch and handle errors associated with this file, it can create and register an instance of `IMetaLogger` before creating or opening the first report design. The logger is most useful for test suites.

This is a wrapper class for the IDesignEngine. The new user should use the IDesignEngineFactory to create the IDesignEngine instead of use this class directly.

See Also:
  - `IMetaLogger`
  - `MetaLogManager`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static IDesignEngineFactory`
`cachedFactory`
`protected IDesignEngine`
`engine`
The implementation of the design engine.
`protected static final Logger`
`errorLogger`
The logger for errors.

## Constructor Summary

Constructors
Constructor
Description
`DesignEngine(DesignConfig config)`
Constructs a DesignEngine with the given platform config.

## Method Summary

Modifier and Type
Method
Description
`IMetaDataDictionary`
`getMetaData()`
Gets the meta-data of the design engine.
`static IMetaDataDictionary`
`getMetaDataDictionary()`
Deprecated.
`static SessionHandle`
`newSession(com.ibm.icu.util.ULocale locale)`
Deprecated.
`SessionHandle`
`newSessionHandle(com.ibm.icu.util.ULocale locale)`
Creates a new design session handle.
`IReportDesign`
`openDesign(String fileName, InputStream ins, IModuleOption options)`
Opens the report design.
`void`
`registerMetaLogger(IMetaLogger newLogger)`
Registers a `IMetaLogger` to record initialization errors.
`boolean`
`removeMetaLogger(IMetaLogger logger)`
Removes a `IMetaLogger`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### errorLogger

protected static final Logger errorLogger
The logger for errors.

### cachedFactory

protected static IDesignEngineFactory cachedFactory

### engine

protected IDesignEngine engine
The implementation of the design engine.

## Constructor Details

### DesignEngine

public DesignEngine(DesignConfig config)
Constructs a DesignEngine with the given platform config.

Parameters:
  `config` - the platform config.

## Method Details

### newSessionHandle

public SessionHandle newSessionHandle(com.ibm.icu.util.ULocale locale)
Creates a new design session handle. The application uses the handle to open, create and manage designs. The session also represents the user and maintains the user's locale information.

Specified by:
  `newSessionHandle` in interface `IDesignEngine`
Parameters:
  `locale` - the user's locale. If `null`, uses the system locale.
Returns:
  the design session handle
See Also:
  - `SessionHandle`

### newSession

@Deprecated public static SessionHandle newSession(com.ibm.icu.util.ULocale locale)
Deprecated.
Creates a new design session handle. The application uses the handle to open, create and manage designs. The session also represents the user and maintains the user's locale information.

This method is not suggested to use. The user should use new DesignEngine(config).newSessionHandle() to create the session.

Parameters:
  `locale` - the user's locale. If `null`, uses the system locale.
Returns:
  the design session handle
See Also:
  - `SessionHandle`

### getMetaData

public IMetaDataDictionary getMetaData()
Gets the meta-data of the design engine.

Specified by:
  `getMetaData` in interface `IDesignEngine`
Returns:
  the meta-data of the design engine.

### getMetaDataDictionary

@Deprecated public static IMetaDataDictionary getMetaDataDictionary()
Deprecated.
Gets the meta-data dictionary of the design engine.

This method is not suggested to use. The user should use new DesignEngine(config).getMetaData() to get the metadata dictionary.

Returns:
  the meta-data dictionary of the design engine

### registerMetaLogger

public void registerMetaLogger(IMetaLogger newLogger)
Registers a `IMetaLogger` to record initialization errors. The logger will be notified of the errors during meta-data initialization. The meta-data system will be initialized once (and only once). Loggers should be registered before the first time a session is created so that it can be notified of the logging actions.

Specified by:
  `registerMetaLogger` in interface `IDesignEngine`
Parameters:
  `newLogger` - the `MetaLogger` to be registered.
See Also:
  - `removeMetaLogger(IMetaLogger)`

### removeMetaLogger

public boolean removeMetaLogger(IMetaLogger logger)
Removes a `IMetaLogger`. This method will remove the logger from the list and close the logger if it has already been registered. The logger will no longer be notified of the errors during metadata initialization. Returns `true` if this logger manager contained the specified logger.

Specified by:
  `removeMetaLogger` in interface `IDesignEngine`
Parameters:
  `logger` - the `MetaLogger` to be removed.
Returns:
  `true` if this logger manager contained the specified logger.
See Also:
  - `registerMetaLogger(IMetaLogger)`

### openDesign

public IReportDesign openDesign(String fileName, InputStream ins, IModuleOption options) throws DesignFileException
Opens the report design.

Specified by:
  `openDesign` in interface `IDesignEngine`
Parameters:
  `fileName` - the report file name
  `ins` - the input stream. Can be `null`.
  `options` - options to control the way to open the design
Returns:
  the report design instance
Throws:
  `DesignFileException` - if the report file cannot be found or the file is invalid.