Bug 151788 Provide additional ODA runtime hints to the ODA consumer
Some ODA runtime drivers are not able to obtain sufficient metadata on its parameters and result set column. Such metadata is thus needed to be collected at design time, for use by the BIRT ODA consumer. For example, the native data type of a parameter and column is often needed, but is not currently available to the odaconsumer in the Data Engine API runtime hints. This enhancement involves adding the native data type to the Data Engine API, and passing through its value from the ROM Model in report design to the ODA consumer.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/odaconsumer/Driver.java
import org.eclipse.datatools.connectivity.oda.OdaException;
import org.eclipse.datatools.connectivity.oda.consumer.helper.OdaDriver;
import org.eclipse.datatools.connectivity.oda.util.manifest.DataSetType;
import org.eclipse.datatools.connectivity.oda.util.manifest.ExtensionManifest;
import org.eclipse.datatools.connectivity.oda.util.manifest.ManifestExplorer;
import org.eclipse.datatools.connectivity.oda.util.manifest.TraceLogging;
/**
 * Each <code>Driver</code> maintains the state of a driver in the drivers 
 * home directory.  
 */
class Driver
{
	private String m_dataSourceDriverId;
	private ExtensionManifest m_driverConfig;
	private ExtensionManifest m_adapterConfig;
    private IDriver m_driverHelper;
    private static final String BIRT_DATASOURCE_EXTENSION_POINT = "org.eclipse.birt.data.oda.dataSource";
    private static final String ODA_ADAPTER_PLUGIN_ID = "org.eclipse.birt.data.oda.adapter.dtp";
    
    
	private static final String sm_className = Driver.class.getName();
	private static final String sm_loggerName = ConnectionManager.sm_packageName;
	private static LogHelper sm_logger = LogHelper.getInstance( sm_loggerName );
	Driver( String dataSourceElementId )
	{
		final String methodName = "Driver";		
		sm_logger.entering( sm_className, methodName, dataSourceElementId );
		m_dataSourceDriverId = dataSourceElementId;
		sm_logger.exiting( sm_className, methodName, this );
	}