@Test public void testExecution() throws TranslatorException { BaseDelegatingExecutionFactory<Void, Void> ef = new BaseDelegatingExecutionFactory<Void, Void>() { @Override public ResultSetExecution createResultSetExecution( QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, Void connection) throws TranslatorException { return null; } }; ef.setDelegate(new ExecutionFactory<Void, Void>() { @Override public Execution createExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Void connection) throws TranslatorException { throw new AssertionError(); } }); ef.createExecution(new Select(null, false, null, null, null, null, null), null, null, null); }
public void setDelegate(ExecutionFactory<F, C> delegate) { this.delegate = delegate; }
BaseDelegatingExecutionFactory extends ExecutionFactory<F, C> implements DelegatingExecutionFactory<F, C> { public void setDelegate(ExecutionFactory<F, C> delegate) { this.delegate = delegate; } }
BaseDelegatingExecutionFactory extends ExecutionFactory<F, C> implements DelegatingExecutionFactory<F, C> { public void setDelegate(ExecutionFactory<F, C> delegate) { this.delegate = delegate; }  }
BaseDelegatingExecutionFactory extends ExecutionFactory<F, C> implements DelegatingExecutionFactory<F, C> { public void setDelegate(ExecutionFactory<F, C> delegate) { this.delegate = delegate; }  void setDelegate(ExecutionFactory<F, C> delegate); @TranslatorProperty(display="Delegate name", required = true) String getDelegateName(); void setDelegateName(String delegateName); @Override boolean areLobsUsableAfterClose(); @Override void closeConnection(C connection, F factory); @Override ProcedureExecution createProcedureExecution(Call command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override ResultSetExecution createResultSetExecution(QueryExpression command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override UpdateExecution createUpdateExecution(Command command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override C getConnection(F factory, ExecutionContext executionContext); @TranslatorProperty(display="Default Null Order", advanced=true) @Override NullOrder getDefaultNullOrder(); void setDefaultNullOrder(NullOrder nullOrder); @Override LanguageFactory getLanguageFactory(); @TranslatorProperty(display = "Max FROM Allowed", description = "The number of groups supported in the from clause", advanced = true) @Override int getMaxFromGroups(); void setMaxFromGroups(int value); @TranslatorProperty(display = "Max projected columns allowed", description = "The number of columns supported in projected select clause", advanced = true) @Override int getMaxProjectedColumns(); void setMaxProjectedColumns(int value); @Override void getMetadata(MetadataFactory metadataFactory, C conn); @Override List<FunctionMethod> getPushDownFunctions(); @Override List<String> getSupportedFunctions(); @TranslatorProperty(display = "Add Supported Functions(CSV)", description = "Add comma seperated names to system functions", advanced = true) String getAddSupportedFunctions(); void setAddSupportedFunctions(String functionNames); @TranslatorProperty(display = "Remove Supported Functions(CSV)", description = "Remove comma seperated names from system functions", advanced = true) String getRemoveSupportedFunctions(); void setRemoveSupportedFunctions(String functionNames); @Override TypeFacility getTypeFacility(); @Override boolean isImmutable(); void setImmutable(boolean value); @TranslatorProperty(display="Is Source Required", advanced=true) @Override boolean isSourceRequired(); void setSourceRequired(boolean value); @TranslatorProperty(display="Supports AVG()", advanced=true) @Override boolean supportsAggregatesAvg(); void setSupportsAggregatesAvg(boolean value); @TranslatorProperty(display="Supports COUNT()", advanced=true) @Override boolean supportsAggregatesCount(); void setSupportsAggregatesCount(boolean value); @TranslatorProperty(display="Supports Count(*)", advanced=true) @Override boolean supportsAggregatesCountStar(); void setSupportsAggregatesCountStar(boolean value); @TranslatorProperty(display="Supports DISTINCT", advanced=true) @Override boolean supportsAggregatesDistinct(); void setSupportsAggregatesDistinct(boolean value); @TranslatorProperty(display="Supports Aggegate Enhanced Numeric", advanced=true) @Override boolean supportsAggregatesEnhancedNumeric(); void setSupportsAggregatesEnhancedNumeric(boolean value); @TranslatorProperty(display="Supports MAX", advanced=true) @Override boolean supportsAggregatesMax(); void setSupportsAggregatesMax(boolean value); @TranslatorProperty(display="Supports MIN", advanced=true) @Override boolean supportsAggregatesMin(); void setSupportsAggregatesMin(boolean value); @TranslatorProperty(display="Supports SUM", advanced=true) @Override boolean supportsAggregatesSum(); void setSupportsAggregatesSum(boolean value); @TranslatorProperty(display="Supports Alias (ex: as A)", advanced=true) @Override boolean supportsAliasedTable(); void setSupportsAliasedTable(boolean value); @TranslatorProperty(display="Supports Batched Updates", advanced=true) @Override boolean supportsBatchedUpdates(); void setSupportsBatchedUpdates(boolean value); @TranslatorProperty(display="Supports Bulk Updates", advanced=true) @Override boolean supportsBulkUpdate(); void setSupportsBulkUpdate(boolean value); @TranslatorProperty(display="Supports Common Table Expressions", advanced=true) @Override boolean supportsCommonTableExpressions(); void setSupportsCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Compare Criteria Equals", advanced=true) @Override boolean supportsCompareCriteriaEquals(); void setSupportsCompareCriteriaEquals(boolean value); @TranslatorProperty(display="Supports Compare Criteria Ordered", advanced=true) @Override boolean supportsCompareCriteriaOrdered(); void setSupportsCompareCriteriaOrdered(boolean value); @TranslatorProperty(display="Supports Correlated Subqueries", advanced=true) @Override boolean supportsCorrelatedSubqueries(); void setSupportsCorrelatedSubqueries(boolean value); @TranslatorProperty(display="Supports EXCEPT", advanced=true) @Override boolean supportsExcept(); void setSupportsExcept(boolean value); @TranslatorProperty(display="Supports EXISTS", advanced=true) @Override boolean supportsExistsCriteria(); void setSupportsExistsCriteria(boolean value); @TranslatorProperty(display="Supports Functions in GROUP BY", advanced=true) @Override boolean supportsFunctionsInGroupBy(); void setSupportsFunctionsInGroupBy(boolean value); @TranslatorProperty(display="Supports GROUP BY", advanced=true) @Override boolean supportsGroupBy(); void setSupportsGroupBy(boolean value); @TranslatorProperty(display="Supports HAVING", advanced=true) @Override boolean supportsHaving(); void setSupportsHaving(boolean value); @TranslatorProperty(display="Supports IN", advanced=true) @Override boolean supportsInCriteria(); void setSupportsInCriteria(boolean value); @TranslatorProperty(display="Supports IN in Subquery", advanced=true) @Override boolean supportsInCriteriaSubquery(); void setSupportsInCriteriaSubquery(boolean value); @TranslatorProperty(display="Supports Inline Views", advanced=true) @Override boolean supportsInlineViews(); void setSupportsInlineViews(boolean value); @TranslatorProperty(display="Supports INSERT with Query Expression", advanced=true) @Override boolean supportsInsertWithQueryExpression(); void setSupportsInsertWithQueryExpression(boolean value); @TranslatorProperty(display="Supports INTERSECT", advanced=true) @Override boolean supportsIntersect(); void setSupportsIntersect(boolean value); @TranslatorProperty(display="Supports ISNULL", advanced=true) @Override boolean supportsIsNullCriteria(); void setSupportsIsNullCriteria(boolean value); @TranslatorProperty(display="Supports LIKE", advanced=true) @Override boolean supportsLikeCriteria(); void setSupportsLikeCriteria(boolean value); @TranslatorProperty(display="Supports Escape Char in LIKE", advanced=true) @Override boolean supportsLikeCriteriaEscapeCharacter(); void setSupportsLikeCriteriaEscapeCharacter(boolean value); @TranslatorProperty(display="Supports NOT", advanced=true) @Override boolean supportsNotCriteria(); void setSupportsNotCriteria(boolean value); @TranslatorProperty(display="Supports OR", advanced=true) @Override boolean supportsOrCriteria(); void setSupportsOrCriteria(boolean value); @TranslatorProperty(display="Supports ORDER BY col NULLS [FIRST|LAST|HIGH|LOW]", advanced=true) @Override boolean supportsOrderByNullOrdering(); void setSupportsOrderByNullOrdering(boolean value); @TranslatorProperty(display="Supports ORDER BY Unrelated", advanced=true) @Override boolean supportsOrderByUnrelated(); void setSupportsOrderByUnrelated(boolean value); @TranslatorProperty(display="Supports ALL", advanced=true) @Override boolean supportsQuantifiedCompareCriteriaAll(); void setSupportsQuantifiedCompareCriteriaAll(boolean value); @TranslatorProperty(display="Supports SOME", advanced=true) @Override boolean supportsQuantifiedCompareCriteriaSome(); void setSupportsQuantifiedCompareCriteriaSome(boolean value); @TranslatorProperty(display="Supports LIMIT", advanced=true) @Override boolean supportsRowLimit(); void setSupportsRowLimit(boolean value); @TranslatorProperty(display="Supports LIMIT OFFSET", advanced=true) @Override boolean supportsRowOffset(); void setSupportsRowOffset(boolean value); @TranslatorProperty(display="Supports Scalar Sub-Queries", advanced=true) @Override boolean supportsScalarSubqueries(); void setSupportsScalarSubqueries(boolean value); @TranslatorProperty(display="Supports CASE Expression", advanced=true) @Override boolean supportsSearchedCaseExpressions(); void setSupportsSearchedCaseExpressions(boolean value); @TranslatorProperty(display="Supports SELECT expressions", advanced=true) @Override boolean supportsSelectExpression(); void setSupportsSelectExpression(boolean value); @TranslatorProperty(display="Supports Self JOINS", advanced=true) @Override boolean supportsSelfJoins(); void setSupportsSelfJoins(boolean value); @TranslatorProperty(display="Supports Set Query Orderby", advanced=true) @Override boolean supportsSetQueryOrderBy(); void setSupportsSetQueryOrderBy(boolean value); @TranslatorProperty(display="Supports UNION", advanced=true) @Override boolean supportsUnions(); void setSupportsUnions(boolean value); @Override String toString(); @TranslatorProperty(display="Supports ANSI Joins", advanced=true) @Override boolean useAnsiJoin(); void setUseAnsiJoin(boolean value); @Override boolean equals(Object obj); @Override int hashCode(); @TranslatorProperty(display="Supports Copy LOBS", advanced=true) @Override boolean isCopyLobs(); void setCopyLobs(boolean value); @TranslatorProperty(display="Supports Array Aggregation", advanced=true) @Override boolean supportsArrayAgg(); void setSupportsArrayAgg(boolean value); @TranslatorProperty(display="Supports OLAP Operations", advanced=true) @Override boolean supportsElementaryOlapOperations(); void setSupportsElementaryOlapOperations(boolean value); @TranslatorProperty(display="Supports Window Frame Clause on a Window Function", advanced=true) @Override boolean supportsWindowFrameClause(); void setSupportsWindowFrameClause(boolean value); @Override boolean supportsFormatLiteral(String literal,
            org.teiid.translator.ExecutionFactory.Format format); @TranslatorProperty(display="Supports REGEX in LIKE", advanced=true) @Override boolean supportsLikeRegex(); void setSupportsLikeRegex(boolean value); @TranslatorProperty(display="Supports only Format Literals", advanced=true) @Override boolean supportsOnlyFormatLiterals(); void setSupportsOnlyFormatLiterals(boolean value); @TranslatorProperty(display="Supports Single Table GROUP BY", advanced=true) @Override boolean supportsOnlySingleTableGroupBy(); void setSupportsOnlySingleTableGroupBy(boolean value); @TranslatorProperty(display="Supports SIMILAR TO", advanced=true) @Override boolean supportsSimilarTo(); void setSupportsSimilarTo(boolean value); @TranslatorProperty(display="Supports Windowed Aggregates", advanced=true) @Override boolean supportsWindowDistinctAggregates(); void setSupportsWindowDistinctAggregates(boolean value); @TranslatorProperty(display="Supports Order by With Windowed Aggregates", advanced=true) @Override boolean supportsWindowOrderByWithAggregates(); void setSupportsWindowOrderByWithAggregates(boolean value); @Override int getMaxInCriteriaSize(); void setMaxInCriteriaSize(int max); @Override org.teiid.translator.ExecutionFactory.SupportedJoinCriteria getSupportedJoinCriteria(); void setSupportedJoinCriteria(org.teiid.translator.ExecutionFactory.SupportedJoinCriteria value); @Override boolean requiresCriteria(); void setRequiresCriteria(boolean value); @Override boolean supportsFullOuterJoins(); @Override void setSupportsFullOuterJoins(boolean supportsFullOuterJoins); @Override boolean supportsInnerJoins(); @Override void setSupportsInnerJoins(boolean supportsInnerJoins); @Override boolean supportsOrderBy(); @Override void setSupportsOrderBy(boolean supportsOrderBy); @Override boolean supportsOuterJoins(); @Override void setSupportsOuterJoins(boolean supportsOuterJoins); @Override boolean supportsSelectDistinct(); @Override void setSupportsSelectDistinct(boolean supportsSelectDistinct); @Override int getMaxDependentInPredicates(); @Override void setMaxDependentInPredicates(int maxDependentInPredicates); @TranslatorProperty(display="Supports Advanced OLAP Operations", advanced=true) @Override boolean supportsAdvancedOlapOperations(); void setSupportsAdvancedOlapOperations(boolean value); @TranslatorProperty(display="Supports Subquery In ON", advanced=true) @Override boolean supportsSubqueryInOn(); void setSupportsSubqueryInOn(boolean value); @Override boolean supportsConvert(int fromType, int toType); @TranslatorProperty(display="Supports Dependent Joins", advanced=true) @Override boolean supportsDependentJoins(); void setSupportsDependentJoins(boolean value); @TranslatorProperty(display="Supports Only Literal Comparision", advanced=true) @Override boolean supportsOnlyLiteralComparison(); void setSupportsOnlyLiteralComparison(boolean value); @Override CacheDirective getCacheDirective(Command command,
            ExecutionContext executionContext, RuntimeMetadata metadata); @TranslatorProperty(display="Is Source Required For Metadata", advanced=true) @Override boolean isSourceRequiredForMetadata(); void setSourceRequiredForMetadata(boolean value); @TranslatorProperty(display="Is Forkable", description="When forkable the engine may use a separate thread to interact with returned Exection", advanced=true) @Override boolean isForkable(); void setForkable(boolean value); @TranslatorProperty(display="Supports Array Type", advanced=true) @Override boolean supportsArrayType(); void setSupportsArrayType(boolean value); @Override @TranslatorProperty(display="Direct Query Procedure Name", advanced=true) String getDirectQueryProcedureName(); void setDirectQueryProcedureName(String name); @Override boolean supportsDirectQueryProcedure(); void setSupportsDirectQueryProcedure(boolean value); @Override ProcedureExecution createDirectExecution(List<Argument> arguments,
            Command command, ExecutionContext executionContext,
            RuntimeMetadata metadata, C connection); @TranslatorProperty(display="Supports Correlated Sub Queries", advanced=true) @Override boolean supportsOnlyCorrelatedSubqueries(); void setSupportsOnlyCorrelatedSubqueries(boolean value); @TranslatorProperty(display="Source required for Capabilities", advanced=true) @Override boolean isSourceRequiredForCapabilities(); void setSourceRequiredForCapabilities(boolean value); @Override void initCapabilities(C connection); @TranslatorProperty(display="Supports STRING_AGG", advanced=true) @Override boolean supportsStringAgg(); void setSupportsStringAgg(boolean value); @TranslatorProperty(display="Supports LISTAGG", advanced=true) @Override boolean supportsListAgg(); void setSupportsListAgg(boolean value); @TranslatorProperty(display="Supports Full Dependent Joins", advanced=true) @Override boolean supportsFullDependentJoins(); void setSupportsFullDependentJoins(boolean value); @TranslatorProperty(display="Supports SELECT w/o FROM", advanced=true) @Override boolean supportsSelectWithoutFrom(); void setSupportsSelectWithoutFrom(boolean value); @TranslatorProperty(display="Supports GROUP BY ROLLUP", advanced=true) @Override boolean supportsGroupByRollup(); void setSupportsGroupByRollup(boolean value); @TranslatorProperty(display="Supports Orderby w/extended grouping", advanced=true) @Override boolean supportsOrderByWithExtendedGrouping(); void setSupportsOrderByWithExtendedGrouping(boolean value); @Override boolean isThreadBound(); void setThreadBound(boolean value); @Override String getCollationLocale(); void setCollationLocale(String value); @TranslatorProperty(display="Supports Recursive Common Table Expresions", advanced=true) @Override boolean supportsRecursiveCommonTableExpressions(); void setSupportsRecursiveCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Criteria Ordered Exclusive", advanced=true) @Override boolean supportsCompareCriteriaOrderedExclusive(); @Deprecated void supportsCompareCriteriaOrderedExclusive(boolean value); void setSupportsCompareCriteriaOrderedExclusive(boolean value); @Override boolean returnsSingleUpdateCount(); @TranslatorProperty(display="Supports Partial Filtering", advanced=true) @Override boolean supportsPartialFiltering(); void setSupportsPartialFiltering(boolean value); @TranslatorProperty(display="Use Bindings for Dependent Joins", advanced=true) @Override boolean useBindingsForDependentJoin(); void setUseBindingsForDependentJoin(boolean value); @TranslatorProperty(display="Supports Subquery Common Table Expressions", advanced=true) @Override boolean supportsSubqueryCommonTableExpressions(); void setSupportsSubqueryCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Correlated Subquery Limit", advanced=true) @Override boolean supportsCorrelatedSubqueryLimit(); void setSupportsCorrelatedSubqueryLimit(boolean value); @TranslatorProperty(display="Escape char for LIKE", advanced=true) @Override Character getRequiredLikeEscape(); void setRequiredLikeEscape(Character c); @TranslatorProperty(display="Supports Scalar SubQuery in SELECT", advanced=true) @Override boolean supportsScalarSubqueryProjection(); void setSupportsScalarSubqueryProjection(boolean value); @Override org.teiid.translator.ExecutionFactory.TransactionSupport getTransactionSupport(); void setTransactionSupport(TransactionSupport transactionSupport); @Override @TranslatorProperty(display="Excluded Common Table Expression Name", advanced=true) String getExcludedCommonTableExpressionName(); void setExcludedCommonTableExpressionName(String value); @TranslatorProperty(display="Supports Lateral Join", advanced=true) @Override boolean supportsLateralJoin(); void setSupportsLateralJoin(boolean value); @TranslatorProperty(display="Supports Lateral Join Condition", advanced=true) @Override boolean supportsLateralJoinCondition(); void setSupportsLateralJoinCondition(boolean value); @TranslatorProperty(display="Supports Procedure Table", advanced=true) @Override boolean supportsProcedureTable(); void setSupportsProcedureTable(boolean value); @TranslatorProperty(display="Supports GROUP By with Multiple DISTINCTS", advanced=true) @Override boolean supportsGroupByMultipleDistinctAggregates(); void setSupportsGroupByMultipleDistinctAggregates(boolean value); @Override void start(); @TranslatorProperty(display="Supports Upsert", advanced=true) @Override boolean supportsUpsert(); void setSupportsUpsert(boolean value); @TranslatorProperty(display="Supports SELECT array type expressions", advanced=true) @Override boolean supportsSelectExpressionArrayType(); void setSupportsSelectExpressionArrayType(boolean value); @TranslatorProperty(display="Supports SET Query OFFSET/LIMIT", advanced=true) @Override boolean supportsSetQueryLimitOffset(); void setSupportsSetQueryLimitOffset(boolean value); @TranslatorProperty(display="Supports IS DISTINCT", advanced=true) @Override boolean supportsIsDistinctCriteria(); void setSupportsIsDistinctCriteria(boolean value); @TranslatorProperty(display="Supports Only Lateral Join Procedure", advanced=true) @Override boolean supportsOnlyLateralJoinProcedure(); void setSupportsOnlyLateralJoinProcedure(
            boolean supportsOnlyLateralJoinProcedure); @TranslatorProperty(display="Supports Only TimestampAdd literal", advanced=true) @Override boolean supportsOnlyTimestampAddLiteral(); void setSupportsOnlyTimestampAddLiteral(
            boolean supportsOnlyTimestampAddLiteral); @TranslatorProperty(display="Cache Pattern", advanced=true) String getCachePattern(); void setCachePattern(String cachePattern); @TranslatorProperty(display="Cache TTL", advanced=true) Long getCacheTtl(); void setCacheTtl(Long ttl); @TranslatorProperty(display="Supports NTILE", advanced=true) @Override boolean supportsWindowFunctionNtile(); void setSupportsWindowFunctionNtile(boolean supportsNtile); @TranslatorProperty(display="Supports PERCENT_RANK", advanced=true) @Override boolean supportsWindowFunctionPercentRank(); void setSupportsWindowFunctionPercentRank(boolean supportsPercentRank); @TranslatorProperty(display="Supports CUME_DIST", advanced=true) @Override boolean supportsWindowFunctionCumeDist(); void setSupportsWindowFunctionCumeDist(boolean supportsCumeDist); @TranslatorProperty(display="Supports NTH_VALUE", advanced=true) @Override boolean supportsWindowFunctionNthValue(); void setSupportsWindowFunctionNthValue(boolean supportsNthValue); @Override boolean supportsMultipleOpenExecutions(); void setSupportsMultipleOpenStatements(
            boolean supportsMultipleOpenStatements); @Override boolean supportsAggregatesCountBig(); void setSupportsAggregatesCountBig(
            boolean supportsAggregatesCountBig); @Override boolean supportsGeographyType(); void setSupportsGeographyType(
            boolean supportsGeographyType); @Override boolean supportsProcedureParameterExpression(); void setSupportsProcedureParameterExpression(
            Boolean supportsProcedureParameterExpression); }
BaseDelegatingExecutionFactory extends ExecutionFactory<F, C> implements DelegatingExecutionFactory<F, C> { public void setDelegate(ExecutionFactory<F, C> delegate) { this.delegate = delegate; }  void setDelegate(ExecutionFactory<F, C> delegate); @TranslatorProperty(display="Delegate name", required = true) String getDelegateName(); void setDelegateName(String delegateName); @Override boolean areLobsUsableAfterClose(); @Override void closeConnection(C connection, F factory); @Override ProcedureExecution createProcedureExecution(Call command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override ResultSetExecution createResultSetExecution(QueryExpression command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override UpdateExecution createUpdateExecution(Command command,
            ExecutionContext executionContext, RuntimeMetadata metadata,
            C connection); @Override C getConnection(F factory, ExecutionContext executionContext); @TranslatorProperty(display="Default Null Order", advanced=true) @Override NullOrder getDefaultNullOrder(); void setDefaultNullOrder(NullOrder nullOrder); @Override LanguageFactory getLanguageFactory(); @TranslatorProperty(display = "Max FROM Allowed", description = "The number of groups supported in the from clause", advanced = true) @Override int getMaxFromGroups(); void setMaxFromGroups(int value); @TranslatorProperty(display = "Max projected columns allowed", description = "The number of columns supported in projected select clause", advanced = true) @Override int getMaxProjectedColumns(); void setMaxProjectedColumns(int value); @Override void getMetadata(MetadataFactory metadataFactory, C conn); @Override List<FunctionMethod> getPushDownFunctions(); @Override List<String> getSupportedFunctions(); @TranslatorProperty(display = "Add Supported Functions(CSV)", description = "Add comma seperated names to system functions", advanced = true) String getAddSupportedFunctions(); void setAddSupportedFunctions(String functionNames); @TranslatorProperty(display = "Remove Supported Functions(CSV)", description = "Remove comma seperated names from system functions", advanced = true) String getRemoveSupportedFunctions(); void setRemoveSupportedFunctions(String functionNames); @Override TypeFacility getTypeFacility(); @Override boolean isImmutable(); void setImmutable(boolean value); @TranslatorProperty(display="Is Source Required", advanced=true) @Override boolean isSourceRequired(); void setSourceRequired(boolean value); @TranslatorProperty(display="Supports AVG()", advanced=true) @Override boolean supportsAggregatesAvg(); void setSupportsAggregatesAvg(boolean value); @TranslatorProperty(display="Supports COUNT()", advanced=true) @Override boolean supportsAggregatesCount(); void setSupportsAggregatesCount(boolean value); @TranslatorProperty(display="Supports Count(*)", advanced=true) @Override boolean supportsAggregatesCountStar(); void setSupportsAggregatesCountStar(boolean value); @TranslatorProperty(display="Supports DISTINCT", advanced=true) @Override boolean supportsAggregatesDistinct(); void setSupportsAggregatesDistinct(boolean value); @TranslatorProperty(display="Supports Aggegate Enhanced Numeric", advanced=true) @Override boolean supportsAggregatesEnhancedNumeric(); void setSupportsAggregatesEnhancedNumeric(boolean value); @TranslatorProperty(display="Supports MAX", advanced=true) @Override boolean supportsAggregatesMax(); void setSupportsAggregatesMax(boolean value); @TranslatorProperty(display="Supports MIN", advanced=true) @Override boolean supportsAggregatesMin(); void setSupportsAggregatesMin(boolean value); @TranslatorProperty(display="Supports SUM", advanced=true) @Override boolean supportsAggregatesSum(); void setSupportsAggregatesSum(boolean value); @TranslatorProperty(display="Supports Alias (ex: as A)", advanced=true) @Override boolean supportsAliasedTable(); void setSupportsAliasedTable(boolean value); @TranslatorProperty(display="Supports Batched Updates", advanced=true) @Override boolean supportsBatchedUpdates(); void setSupportsBatchedUpdates(boolean value); @TranslatorProperty(display="Supports Bulk Updates", advanced=true) @Override boolean supportsBulkUpdate(); void setSupportsBulkUpdate(boolean value); @TranslatorProperty(display="Supports Common Table Expressions", advanced=true) @Override boolean supportsCommonTableExpressions(); void setSupportsCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Compare Criteria Equals", advanced=true) @Override boolean supportsCompareCriteriaEquals(); void setSupportsCompareCriteriaEquals(boolean value); @TranslatorProperty(display="Supports Compare Criteria Ordered", advanced=true) @Override boolean supportsCompareCriteriaOrdered(); void setSupportsCompareCriteriaOrdered(boolean value); @TranslatorProperty(display="Supports Correlated Subqueries", advanced=true) @Override boolean supportsCorrelatedSubqueries(); void setSupportsCorrelatedSubqueries(boolean value); @TranslatorProperty(display="Supports EXCEPT", advanced=true) @Override boolean supportsExcept(); void setSupportsExcept(boolean value); @TranslatorProperty(display="Supports EXISTS", advanced=true) @Override boolean supportsExistsCriteria(); void setSupportsExistsCriteria(boolean value); @TranslatorProperty(display="Supports Functions in GROUP BY", advanced=true) @Override boolean supportsFunctionsInGroupBy(); void setSupportsFunctionsInGroupBy(boolean value); @TranslatorProperty(display="Supports GROUP BY", advanced=true) @Override boolean supportsGroupBy(); void setSupportsGroupBy(boolean value); @TranslatorProperty(display="Supports HAVING", advanced=true) @Override boolean supportsHaving(); void setSupportsHaving(boolean value); @TranslatorProperty(display="Supports IN", advanced=true) @Override boolean supportsInCriteria(); void setSupportsInCriteria(boolean value); @TranslatorProperty(display="Supports IN in Subquery", advanced=true) @Override boolean supportsInCriteriaSubquery(); void setSupportsInCriteriaSubquery(boolean value); @TranslatorProperty(display="Supports Inline Views", advanced=true) @Override boolean supportsInlineViews(); void setSupportsInlineViews(boolean value); @TranslatorProperty(display="Supports INSERT with Query Expression", advanced=true) @Override boolean supportsInsertWithQueryExpression(); void setSupportsInsertWithQueryExpression(boolean value); @TranslatorProperty(display="Supports INTERSECT", advanced=true) @Override boolean supportsIntersect(); void setSupportsIntersect(boolean value); @TranslatorProperty(display="Supports ISNULL", advanced=true) @Override boolean supportsIsNullCriteria(); void setSupportsIsNullCriteria(boolean value); @TranslatorProperty(display="Supports LIKE", advanced=true) @Override boolean supportsLikeCriteria(); void setSupportsLikeCriteria(boolean value); @TranslatorProperty(display="Supports Escape Char in LIKE", advanced=true) @Override boolean supportsLikeCriteriaEscapeCharacter(); void setSupportsLikeCriteriaEscapeCharacter(boolean value); @TranslatorProperty(display="Supports NOT", advanced=true) @Override boolean supportsNotCriteria(); void setSupportsNotCriteria(boolean value); @TranslatorProperty(display="Supports OR", advanced=true) @Override boolean supportsOrCriteria(); void setSupportsOrCriteria(boolean value); @TranslatorProperty(display="Supports ORDER BY col NULLS [FIRST|LAST|HIGH|LOW]", advanced=true) @Override boolean supportsOrderByNullOrdering(); void setSupportsOrderByNullOrdering(boolean value); @TranslatorProperty(display="Supports ORDER BY Unrelated", advanced=true) @Override boolean supportsOrderByUnrelated(); void setSupportsOrderByUnrelated(boolean value); @TranslatorProperty(display="Supports ALL", advanced=true) @Override boolean supportsQuantifiedCompareCriteriaAll(); void setSupportsQuantifiedCompareCriteriaAll(boolean value); @TranslatorProperty(display="Supports SOME", advanced=true) @Override boolean supportsQuantifiedCompareCriteriaSome(); void setSupportsQuantifiedCompareCriteriaSome(boolean value); @TranslatorProperty(display="Supports LIMIT", advanced=true) @Override boolean supportsRowLimit(); void setSupportsRowLimit(boolean value); @TranslatorProperty(display="Supports LIMIT OFFSET", advanced=true) @Override boolean supportsRowOffset(); void setSupportsRowOffset(boolean value); @TranslatorProperty(display="Supports Scalar Sub-Queries", advanced=true) @Override boolean supportsScalarSubqueries(); void setSupportsScalarSubqueries(boolean value); @TranslatorProperty(display="Supports CASE Expression", advanced=true) @Override boolean supportsSearchedCaseExpressions(); void setSupportsSearchedCaseExpressions(boolean value); @TranslatorProperty(display="Supports SELECT expressions", advanced=true) @Override boolean supportsSelectExpression(); void setSupportsSelectExpression(boolean value); @TranslatorProperty(display="Supports Self JOINS", advanced=true) @Override boolean supportsSelfJoins(); void setSupportsSelfJoins(boolean value); @TranslatorProperty(display="Supports Set Query Orderby", advanced=true) @Override boolean supportsSetQueryOrderBy(); void setSupportsSetQueryOrderBy(boolean value); @TranslatorProperty(display="Supports UNION", advanced=true) @Override boolean supportsUnions(); void setSupportsUnions(boolean value); @Override String toString(); @TranslatorProperty(display="Supports ANSI Joins", advanced=true) @Override boolean useAnsiJoin(); void setUseAnsiJoin(boolean value); @Override boolean equals(Object obj); @Override int hashCode(); @TranslatorProperty(display="Supports Copy LOBS", advanced=true) @Override boolean isCopyLobs(); void setCopyLobs(boolean value); @TranslatorProperty(display="Supports Array Aggregation", advanced=true) @Override boolean supportsArrayAgg(); void setSupportsArrayAgg(boolean value); @TranslatorProperty(display="Supports OLAP Operations", advanced=true) @Override boolean supportsElementaryOlapOperations(); void setSupportsElementaryOlapOperations(boolean value); @TranslatorProperty(display="Supports Window Frame Clause on a Window Function", advanced=true) @Override boolean supportsWindowFrameClause(); void setSupportsWindowFrameClause(boolean value); @Override boolean supportsFormatLiteral(String literal,
            org.teiid.translator.ExecutionFactory.Format format); @TranslatorProperty(display="Supports REGEX in LIKE", advanced=true) @Override boolean supportsLikeRegex(); void setSupportsLikeRegex(boolean value); @TranslatorProperty(display="Supports only Format Literals", advanced=true) @Override boolean supportsOnlyFormatLiterals(); void setSupportsOnlyFormatLiterals(boolean value); @TranslatorProperty(display="Supports Single Table GROUP BY", advanced=true) @Override boolean supportsOnlySingleTableGroupBy(); void setSupportsOnlySingleTableGroupBy(boolean value); @TranslatorProperty(display="Supports SIMILAR TO", advanced=true) @Override boolean supportsSimilarTo(); void setSupportsSimilarTo(boolean value); @TranslatorProperty(display="Supports Windowed Aggregates", advanced=true) @Override boolean supportsWindowDistinctAggregates(); void setSupportsWindowDistinctAggregates(boolean value); @TranslatorProperty(display="Supports Order by With Windowed Aggregates", advanced=true) @Override boolean supportsWindowOrderByWithAggregates(); void setSupportsWindowOrderByWithAggregates(boolean value); @Override int getMaxInCriteriaSize(); void setMaxInCriteriaSize(int max); @Override org.teiid.translator.ExecutionFactory.SupportedJoinCriteria getSupportedJoinCriteria(); void setSupportedJoinCriteria(org.teiid.translator.ExecutionFactory.SupportedJoinCriteria value); @Override boolean requiresCriteria(); void setRequiresCriteria(boolean value); @Override boolean supportsFullOuterJoins(); @Override void setSupportsFullOuterJoins(boolean supportsFullOuterJoins); @Override boolean supportsInnerJoins(); @Override void setSupportsInnerJoins(boolean supportsInnerJoins); @Override boolean supportsOrderBy(); @Override void setSupportsOrderBy(boolean supportsOrderBy); @Override boolean supportsOuterJoins(); @Override void setSupportsOuterJoins(boolean supportsOuterJoins); @Override boolean supportsSelectDistinct(); @Override void setSupportsSelectDistinct(boolean supportsSelectDistinct); @Override int getMaxDependentInPredicates(); @Override void setMaxDependentInPredicates(int maxDependentInPredicates); @TranslatorProperty(display="Supports Advanced OLAP Operations", advanced=true) @Override boolean supportsAdvancedOlapOperations(); void setSupportsAdvancedOlapOperations(boolean value); @TranslatorProperty(display="Supports Subquery In ON", advanced=true) @Override boolean supportsSubqueryInOn(); void setSupportsSubqueryInOn(boolean value); @Override boolean supportsConvert(int fromType, int toType); @TranslatorProperty(display="Supports Dependent Joins", advanced=true) @Override boolean supportsDependentJoins(); void setSupportsDependentJoins(boolean value); @TranslatorProperty(display="Supports Only Literal Comparision", advanced=true) @Override boolean supportsOnlyLiteralComparison(); void setSupportsOnlyLiteralComparison(boolean value); @Override CacheDirective getCacheDirective(Command command,
            ExecutionContext executionContext, RuntimeMetadata metadata); @TranslatorProperty(display="Is Source Required For Metadata", advanced=true) @Override boolean isSourceRequiredForMetadata(); void setSourceRequiredForMetadata(boolean value); @TranslatorProperty(display="Is Forkable", description="When forkable the engine may use a separate thread to interact with returned Exection", advanced=true) @Override boolean isForkable(); void setForkable(boolean value); @TranslatorProperty(display="Supports Array Type", advanced=true) @Override boolean supportsArrayType(); void setSupportsArrayType(boolean value); @Override @TranslatorProperty(display="Direct Query Procedure Name", advanced=true) String getDirectQueryProcedureName(); void setDirectQueryProcedureName(String name); @Override boolean supportsDirectQueryProcedure(); void setSupportsDirectQueryProcedure(boolean value); @Override ProcedureExecution createDirectExecution(List<Argument> arguments,
            Command command, ExecutionContext executionContext,
            RuntimeMetadata metadata, C connection); @TranslatorProperty(display="Supports Correlated Sub Queries", advanced=true) @Override boolean supportsOnlyCorrelatedSubqueries(); void setSupportsOnlyCorrelatedSubqueries(boolean value); @TranslatorProperty(display="Source required for Capabilities", advanced=true) @Override boolean isSourceRequiredForCapabilities(); void setSourceRequiredForCapabilities(boolean value); @Override void initCapabilities(C connection); @TranslatorProperty(display="Supports STRING_AGG", advanced=true) @Override boolean supportsStringAgg(); void setSupportsStringAgg(boolean value); @TranslatorProperty(display="Supports LISTAGG", advanced=true) @Override boolean supportsListAgg(); void setSupportsListAgg(boolean value); @TranslatorProperty(display="Supports Full Dependent Joins", advanced=true) @Override boolean supportsFullDependentJoins(); void setSupportsFullDependentJoins(boolean value); @TranslatorProperty(display="Supports SELECT w/o FROM", advanced=true) @Override boolean supportsSelectWithoutFrom(); void setSupportsSelectWithoutFrom(boolean value); @TranslatorProperty(display="Supports GROUP BY ROLLUP", advanced=true) @Override boolean supportsGroupByRollup(); void setSupportsGroupByRollup(boolean value); @TranslatorProperty(display="Supports Orderby w/extended grouping", advanced=true) @Override boolean supportsOrderByWithExtendedGrouping(); void setSupportsOrderByWithExtendedGrouping(boolean value); @Override boolean isThreadBound(); void setThreadBound(boolean value); @Override String getCollationLocale(); void setCollationLocale(String value); @TranslatorProperty(display="Supports Recursive Common Table Expresions", advanced=true) @Override boolean supportsRecursiveCommonTableExpressions(); void setSupportsRecursiveCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Criteria Ordered Exclusive", advanced=true) @Override boolean supportsCompareCriteriaOrderedExclusive(); @Deprecated void supportsCompareCriteriaOrderedExclusive(boolean value); void setSupportsCompareCriteriaOrderedExclusive(boolean value); @Override boolean returnsSingleUpdateCount(); @TranslatorProperty(display="Supports Partial Filtering", advanced=true) @Override boolean supportsPartialFiltering(); void setSupportsPartialFiltering(boolean value); @TranslatorProperty(display="Use Bindings for Dependent Joins", advanced=true) @Override boolean useBindingsForDependentJoin(); void setUseBindingsForDependentJoin(boolean value); @TranslatorProperty(display="Supports Subquery Common Table Expressions", advanced=true) @Override boolean supportsSubqueryCommonTableExpressions(); void setSupportsSubqueryCommonTableExpressions(boolean value); @TranslatorProperty(display="Supports Correlated Subquery Limit", advanced=true) @Override boolean supportsCorrelatedSubqueryLimit(); void setSupportsCorrelatedSubqueryLimit(boolean value); @TranslatorProperty(display="Escape char for LIKE", advanced=true) @Override Character getRequiredLikeEscape(); void setRequiredLikeEscape(Character c); @TranslatorProperty(display="Supports Scalar SubQuery in SELECT", advanced=true) @Override boolean supportsScalarSubqueryProjection(); void setSupportsScalarSubqueryProjection(boolean value); @Override org.teiid.translator.ExecutionFactory.TransactionSupport getTransactionSupport(); void setTransactionSupport(TransactionSupport transactionSupport); @Override @TranslatorProperty(display="Excluded Common Table Expression Name", advanced=true) String getExcludedCommonTableExpressionName(); void setExcludedCommonTableExpressionName(String value); @TranslatorProperty(display="Supports Lateral Join", advanced=true) @Override boolean supportsLateralJoin(); void setSupportsLateralJoin(boolean value); @TranslatorProperty(display="Supports Lateral Join Condition", advanced=true) @Override boolean supportsLateralJoinCondition(); void setSupportsLateralJoinCondition(boolean value); @TranslatorProperty(display="Supports Procedure Table", advanced=true) @Override boolean supportsProcedureTable(); void setSupportsProcedureTable(boolean value); @TranslatorProperty(display="Supports GROUP By with Multiple DISTINCTS", advanced=true) @Override boolean supportsGroupByMultipleDistinctAggregates(); void setSupportsGroupByMultipleDistinctAggregates(boolean value); @Override void start(); @TranslatorProperty(display="Supports Upsert", advanced=true) @Override boolean supportsUpsert(); void setSupportsUpsert(boolean value); @TranslatorProperty(display="Supports SELECT array type expressions", advanced=true) @Override boolean supportsSelectExpressionArrayType(); void setSupportsSelectExpressionArrayType(boolean value); @TranslatorProperty(display="Supports SET Query OFFSET/LIMIT", advanced=true) @Override boolean supportsSetQueryLimitOffset(); void setSupportsSetQueryLimitOffset(boolean value); @TranslatorProperty(display="Supports IS DISTINCT", advanced=true) @Override boolean supportsIsDistinctCriteria(); void setSupportsIsDistinctCriteria(boolean value); @TranslatorProperty(display="Supports Only Lateral Join Procedure", advanced=true) @Override boolean supportsOnlyLateralJoinProcedure(); void setSupportsOnlyLateralJoinProcedure(
            boolean supportsOnlyLateralJoinProcedure); @TranslatorProperty(display="Supports Only TimestampAdd literal", advanced=true) @Override boolean supportsOnlyTimestampAddLiteral(); void setSupportsOnlyTimestampAddLiteral(
            boolean supportsOnlyTimestampAddLiteral); @TranslatorProperty(display="Cache Pattern", advanced=true) String getCachePattern(); void setCachePattern(String cachePattern); @TranslatorProperty(display="Cache TTL", advanced=true) Long getCacheTtl(); void setCacheTtl(Long ttl); @TranslatorProperty(display="Supports NTILE", advanced=true) @Override boolean supportsWindowFunctionNtile(); void setSupportsWindowFunctionNtile(boolean supportsNtile); @TranslatorProperty(display="Supports PERCENT_RANK", advanced=true) @Override boolean supportsWindowFunctionPercentRank(); void setSupportsWindowFunctionPercentRank(boolean supportsPercentRank); @TranslatorProperty(display="Supports CUME_DIST", advanced=true) @Override boolean supportsWindowFunctionCumeDist(); void setSupportsWindowFunctionCumeDist(boolean supportsCumeDist); @TranslatorProperty(display="Supports NTH_VALUE", advanced=true) @Override boolean supportsWindowFunctionNthValue(); void setSupportsWindowFunctionNthValue(boolean supportsNthValue); @Override boolean supportsMultipleOpenExecutions(); void setSupportsMultipleOpenStatements(
            boolean supportsMultipleOpenStatements); @Override boolean supportsAggregatesCountBig(); void setSupportsAggregatesCountBig(
            boolean supportsAggregatesCountBig); @Override boolean supportsGeographyType(); void setSupportsGeographyType(
            boolean supportsGeographyType); @Override boolean supportsProcedureParameterExpression(); void setSupportsProcedureParameterExpression(
            Boolean supportsProcedureParameterExpression);  }