package org.teiid.designer.datatools.connection; import java.util.Properties; import org.eclipse.datatools.connectivity.IConnectionProfile; import org.teiid.designer.core.ModelerCore; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.runtime.spi.ITeiidServer; public class DataSourceConnectionHelper { final ModelResource mr; private IConnectionProfile cp; private IConnectionInfoProvider provider; public DataSourceConnectionHelper(ModelResource mr, IConnectionProfile connectionProfile) { super(); this.mr = mr; this.cp = connectionProfile; } public DataSourceConnectionHelper(ModelResource mr) { super(); this.mr = mr; this.cp = null; try { this.cp = this.getProvider().getConnectionProfile(this.mr); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public Properties getModelConnectionProperties() { if (provider != null) { Properties properties = provider.getTeiidRelatedProperties(cp); if (properties != null && !properties.isEmpty()) { return properties; } } return null; } public String getDataSourceType() { IConnectionInfoProvider provider = null; try { provider = getProvider(); } catch (Exception e) { // If provider throws exception its OK because some models may not have connection info. } if (provider != null) { return provider.getDataSourceType(); } return null; } public IConnectionProfile getConnectionProfile() { return this.cp; } public String getTranslatorType() { if (provider != null) { return provider.getTranslatorName(mr); } return null; } public IConnectionInfoProvider getProvider( ) throws Exception { if( provider == null ) { provider = new ConnectionInfoProviderFactory().getProvider(this.mr); } return provider; } public ModelResource getModelResource() { return this.mr; } public static boolean isServerDefined() { // Check to see if server is available and connected ITeiidServer server = ModelerCore.getTeiidServerManager().getDefaultServer(); return server != null; } public static boolean isServerConnected() { ITeiidServer server = ModelerCore.getTeiidServerManager().getDefaultServer(); return server != null && server.isConnected(); } public static ITeiidServer getServer() { return ModelerCore.getTeiidServerManager().getDefaultServer(); } }