package org.teiid.designer.runtime.connection;
import java.util.Properties;
import java.util.Set;
import org.teiid.core.designer.util.CoreArgCheck;
import org.teiid.designer.datatools.connection.IConnectionInfoHelper;
/**
* @since 8.0
*/
public class TranslatorProfileFactory {
public TranslatorProfileFactory() {
super();
}
/**
*
* @param name
* @param description
* @param id
* @param props
* @return
*/
public TranslatorProfile createTeiidTranslator(String name, String type, Properties props) {
CoreArgCheck.isNotEmpty(name, "name"); //$NON-NLS-1$
CoreArgCheck.isNotEmpty(type, "type"); //$NON-NLS-1$
CoreArgCheck.isNotEmpty(props, "props"); //$NON-NLS-1$
TranslatorProfile profile = new TranslatorProfile(name, type, props);
return profile;
}
/**
* Returns the collective properties of a <code>ConnectionProfile</code> to include name, description and provider id
* in addition to it's base properties. These properties are also prefixed with a custom namespace for storage in
* a model resource "annotation"
*
* @param connectionProfile the connection profile
* @return the name-spaced properties for the translator profile
*/
public Properties getNamespacedProperties(TranslatorProfile translatorProfile) {
CoreArgCheck.isNotNull(translatorProfile, "translatorProfile"); //$NON-NLS-1$
Properties translatorProps = translatorProfile.getProperties();
Properties allProps = new Properties();
allProps.put(IConnectionInfoHelper.TRANSLATOR_NAMESPACE + IConnectionInfoHelper.TRANSLATOR_NAME_KEY, translatorProfile.getName());
allProps.put(IConnectionInfoHelper.TRANSLATOR_NAMESPACE + IConnectionInfoHelper.TRANSLATOR_TYPE_KEY, translatorProfile.getType());
Set<Object> keys = translatorProps.keySet();
for(Object nextKey : keys ) {
allProps.put(IConnectionInfoHelper.TRANSLATOR_NAMESPACE + nextKey, translatorProps.get(nextKey));
}
return allProps;
}
}