/** * A translator for Sybase IQ 15.1+ */ @Translator(name="sybaseiq", description="A translator for Sybase Database", deprecated="sap-iq") public class SybaseIQExecutionFactory extends SAPIQExecutionFactory { }
public static String getTranslatorName(ExecutionFactory factory) { org.teiid.translator.Translator translator = factory.getClass().getAnnotation(org.teiid.translator.Translator.class); if (translator == null) { return null; } return translator.name(); }
String see = translator.deprecated(); if (see != null && see.length() > 0) { metadata.addProperty("deprecated", see); //$NON-NLS-1$ metadata.setName(translator.name()); metadata.setDescription(translator.description()); metadata.setExecutionFactoryClass(factory.getClass()); metadata.setModuleName(moduleName);
@Translator(name="sap-gateway", description="A translator for making OData data service calls to SAP Gateway") public class SAPODataExecutionFactory extends ODataExecutionFactory { public SAPODataExecutionFactory() { super(); setSupportsOdataCount(true); setSupportsOdataFilter(true); setSupportsOdataOrderBy(true); setSupportsOdataSkip(true); setSupportsOdataTop(true); } @Override public MetadataProcessor<WSConnection> getMetadataProcessor() { return new SAPMetadataProcessor(); } }
@SuppressWarnings("rawtypes") private void loadTranslators(String moduleName) { ClassLoader translatorLoader = this.getClass().getClassLoader(); try { final Module module = Module.getBootModuleLoader().loadModule(moduleName); if (module != null) { translatorLoader = module.getClassLoader(); final ServiceLoader<ExecutionFactory> serviceLoader = ServiceLoader.load(ExecutionFactory.class, translatorLoader); if (serviceLoader != null) { for (ExecutionFactory ef : serviceLoader) { Translator t = ef.getClass().getAnnotation(Translator.class); fraction.translator(t.name(), x -> x.module(moduleName)); } } } } catch (ModuleLoadException e) { //no-op } } }
@Translator(name="salesforce-41", description="A translator for Salesforce With API version 41") public class SalesForce41ExecutionFactory extends SalesForceExecutionFactory { }
@SuppressWarnings("rawtypes") private void loadTranslators(String moduleName) { ClassLoader translatorLoader = this.getClass().getClassLoader(); try { final Module module = Module.getBootModuleLoader().loadModule(moduleName); if (module != null) { translatorLoader = module.getClassLoader(); final ServiceLoader<ExecutionFactory> serviceLoader = ServiceLoader.load(ExecutionFactory.class, translatorLoader); if (serviceLoader != null) { for (ExecutionFactory ef : serviceLoader) { Translator t = ef.getClass().getAnnotation(Translator.class); fraction.translator(t.name(), x -> x.module(moduleName)); } } } } catch (ModuleLoadException e) { //no-op } } }
@Translator(name="sap-nw-gateway", description="A translator for making OData data service calls to SAP Gateway", deprecated="sap-gateway") public class SAPNWODataExecutionFactory extends SAPODataExecutionFactory { }
Translator annotation = ef.getClass().getAnnotation(Translator.class); if (annotation != null) { this.translatorType = annotation.name();
/** * Translator for Greenplum. */ @Translator(name="greenplum", description="A translator for the Greenplum Database") public class GreenplumExecutionFactory extends PostgreSQLExecutionFactory { @Override public boolean supportsCorrelatedSubqueries() { return false; } @Override public boolean supportsElementaryOlapOperations() { //greenplum is/was based upon postgresql 8.2, but added extensions for window functions //this can be verified back to greenplum 4.1. Since that and earlier releases are eol //it suffices to just return true return true; } }
Translator annotation = ef.getClass().getAnnotation(Translator.class); if (annotation != null) { this.translatorType = annotation.name();
@Translator(name="ingres93", description="A translator for Ingres 9.3 or later Database") public class Ingres93ExecutionFactory extends IngresExecutionFactory { @Override public void start() throws TranslatorException { super.start(); convert.addTypeMapping("ansidate", FunctionModifier.DATE); //$NON-NLS-1$ convert.addTypeMapping("timestamp(9) with time zone", FunctionModifier.TIMESTAMP); //$NON-NLS-1$ } @SuppressWarnings("unchecked") @Override public List<?> translateLimit(Limit limit, ExecutionContext context) { if (limit.getRowOffset() > 0) { return Arrays.asList("OFFSET ", limit.getRowOffset(), " FETCH FIRST ", limit.getRowLimit(), " ROWS ONLY"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } return super.translateLimit(limit, context); } @Override public boolean supportsRowOffset() { return true; } }
@Deprecated @Translator(name="hbase", description="HBase Translator, reads and writes the data to HBase", deprecated="phoenix") public class HBaseExecutionFactory extends PhoenixExecutionFactory { public HBaseExecutionFactory() { super(); setSupportsFullOuterJoins(false); } }
@Translator(name="ucanaccess", description="A translator for read/write Microsoft Access Database") public class UCanAccessExecutionFactory extends HsqlExecutionFactory { public static final String UCANACCESS = "ucanaccess"; //$NON-NLS-1$ public UCanAccessExecutionFactory() { setSupportsOrderBy(true); setMaxInCriteriaSize(JDBCExecutionFactory.DEFAULT_MAX_IN_CRITERIA); setMaxDependentInPredicates(10); } @Override public void start() throws TranslatorException { super.start(); addPushDownFunction(UCANACCESS, "DCount", TypeFacility.RUNTIME_NAMES.BIG_INTEGER, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DSum", TypeFacility.RUNTIME_NAMES.BIG_INTEGER, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DMax", TypeFacility.RUNTIME_NAMES.INTEGER, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DMin", TypeFacility.RUNTIME_NAMES.BIG_INTEGER, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DAvg", TypeFacility.RUNTIME_NAMES.BIG_INTEGER, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DFirst", TypeFacility.RUNTIME_NAMES.OBJECT, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ addPushDownFunction(UCANACCESS, "DLast", TypeFacility.RUNTIME_NAMES.OBJECT, TypeFacility.RUNTIME_NAMES.STRING, TypeFacility.RUNTIME_NAMES.STRING); //$NON-NLS-1$ } @Override public boolean supportsDependentJoins() { return false; } }
@Translator(name="swagger", description="A translator for making swagger based data service call") public class SwaggerExecutionFactory extends ExecutionFactory<ConnectionFactory, WSConnection> { public SwaggerExecutionFactory() { setSourceRequiredForMetadata(true); setSupportsOrderBy(false); setSupportsSelectDistinct(false); setSupportsInnerJoins(false); setSupportsFullOuterJoins(false); setSupportsOuterJoins(false); } @Override public ProcedureExecution createProcedureExecution(Call command, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException { return new SwaggerProcedureExecution(command, this, executionContext, metadata, connection); } @Override public final List<String> getSupportedFunctions() { return Collections.emptyList(); } @Override public MetadataProcessor<WSConnection> getMetadataProcessor() { return new SwaggerMetadataProcessor(this); } }
@Translator(name="olap", description="A translator for OLAP Cubes") public class OlapExecutionFactory extends ExecutionFactory<DataSource, Connection> { private static final String INVOKE_MDX = "invokeMdx"; //$NON-NLS-1$
@Translator(name="informix", description="A translator for Informix Database") public class InformixExecutionFactory extends JDBCExecutionFactory {
@Translator(name="redshift", description="A translator for Redshift") public class RedshiftExecutionFactory extends PostgreSQLExecutionFactory {
@Translator(name="excel", description="Excel file translator") public class ExcelExecutionFactory extends ExecutionFactory<ConnectionFactory, VirtualFileConnection> {
@Translator(name = "simpledb", description = "Translator for Amazon SimpleDB") public class SimpleDBExecutionFactory extends ExecutionFactory<ConnectionFactory, SimpleDBConnection> { public static final String INTERSECTION = "INTERSECTION"; //$NON-NLS-1$