/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.datatools.connection; import java.util.Collection; import java.util.Properties; import java.util.Set; import org.eclipse.core.runtime.IPath; import org.eclipse.datatools.connectivity.IConnectionProfile; import org.eclipse.datatools.connectivity.internal.ConnectionProfile; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.core.workspace.ModelWorkspaceException; /** * Provides generic capabilities to insert and extract <code>IConnectionProfile</code> information into a * <code>ModelResource</code>. * * @since 8.0 */ public interface IConnectionInfoHelper { public static final String PROFILE_NAME_KEY = "connectionProfileName"; //$NON-NLS-1$ public static final String PROFILE_PROVIDER_ID_KEY = "connectionProfileProviderId"; //$NON-NLS-1$ public static final String PROFILE_DESCRIPTION_KEY = "connectionProfileDescription"; //$NON-NLS-1$ public static final String PROFILE_ID_KEY = "connectionProfileInstanceID"; //$NON-NLS-1$ public static final String CONNECTION_PROFILE_NAMESPACE = "connectionProfile:"; //$NON-NLS-1$ public static final String CONNECTION_NAMESPACE = "connection:"; //$NON-NLS-1$ public static final String TRANSLATOR_NAMESPACE = "translator:"; //$NON-NLS-1$ public static final String TRANSLATOR_NAME_KEY = "name"; //$NON-NLS-1$ public static final String TRANSLATOR_TYPE_KEY = "type"; //$NON-NLS-1$ public static final String JDBCCONNECTION_NAMESPACE = "jdbcConnection:"; //$NON-NLS-1$ public static final String JDBCCONNECTION_ALLOW_AUTOUPDATE_KEY = "allowAutoUpdate"; //$NON-NLS-1$ public static final String JDBCCONNECTION_ALLOW_COSTUPDATE_KEY = "allowCostUpdate"; //$NON-NLS-1$ public static final String CATEGORY_ID_KEY = "connectionProfileCategory"; //$NON-NLS-1$ public abstract Properties getProperties( IConnectionProfile connectionProfile ); public abstract boolean hasConnectionInfo( ModelResource modelResource ); public abstract String getJndiProperty( ModelResource modelResource ); public abstract IConnectionProfile getConnectionProfile( ModelResource modelResource ); public abstract ConnectionProfile createConnectionProfile( String name, String description, String id, Properties props ); public abstract Properties getCommonProfileProperties( IConnectionProfile profile ); public abstract Properties getConnectionProperties( ModelResource modelResource ) throws ModelWorkspaceException; public abstract Properties getTranslatorProperties( ModelResource modelResource ); public abstract String getTranslatorName( ModelResource modelResource ); /** * @param modelResource * @return * @throws ModelWorkspaceException */ Properties getProfileProperties( ModelResource modelResource ) throws ModelWorkspaceException; public abstract String generateUniqueConnectionJndiName( String name, IPath path, String uuid ); public abstract String generateUniqueConnectionJndiName( ModelResource modelResource, String uuid ); public abstract String findMatchingDataSourceTypeName( Properties properties ); public abstract String findMatchingDataSourceTypeName( ModelResource modelResource ) throws ModelWorkspaceException; public abstract String findMatchingDataSourceTypeName( Collection<String> matchableStrings, Set<String> dataSourceTypeNames ); }