Class ODataExecutionFactory

  • Direct Known Subclasses:
    SAPODataExecutionFactory

    @Translator(name="odata",
                description="A translator for making OData data service calls")
    public class ODataExecutionFactory
    extends org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
    TODO: Type comparison isof(T), isof(x, T) Whether targeted instance can be converted to the specified type. media streams are generally not supported yet. (blobs, clobs)
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.teiid.translator.ExecutionFactory

        org.teiid.translator.ExecutionFactory.Format, org.teiid.translator.ExecutionFactory.NullOrder, org.teiid.translator.ExecutionFactory.SupportedJoinCriteria, org.teiid.translator.ExecutionFactory.TransactionSupport
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static TimeZone DEFAULT_TIME_ZONE  
      protected Map<String,​org.teiid.translator.jdbc.FunctionModifier> functionModifiers  
      • Fields inherited from class org.teiid.translator.ExecutionFactory

        DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void convertToODataInput​(org.teiid.language.Literal obj, StringBuilder sb)  
      org.teiid.translator.ProcedureExecution createProcedureExecution​(org.teiid.language.Call command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, org.teiid.translator.ws.WSConnection connection)  
      org.teiid.translator.ResultSetExecution createResultSetExecution​(org.teiid.language.QueryExpression command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, org.teiid.translator.ws.WSConnection connection)  
      org.teiid.translator.UpdateExecution createUpdateExecution​(org.teiid.language.Command command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, org.teiid.translator.ws.WSConnection connection)  
      protected String escapeString​(String str, String quote)  
      String getDatabaseTimeZone()  
      List<String> getDefaultSupportedFunctions()  
      Map<String,​org.teiid.translator.jdbc.FunctionModifier> getFunctionModifiers()
      Return a map of function name to FunctionModifier.
      void getMetadata​(org.teiid.metadata.MetadataFactory metadataFactory, org.teiid.translator.ws.WSConnection conn)  
      org.teiid.translator.MetadataProcessor<org.teiid.translator.ws.WSConnection> getMetadataProcessor()  
      List<String> getSupportedFunctions()  
      void registerFunctionModifier​(String name, org.teiid.translator.jdbc.FunctionModifier modifier)
      Add the FunctionModifier to the set of known modifiers.
      Object retrieveValue​(Object value, Class<?> expectedType)  
      void setDatabaseTimeZone​(String databaseTimeZone)  
      void setSupportsOdataBooleanFunctionsWithComparison​(boolean supports)  
      void setSupportsOdataCount​(boolean supports)  
      void setSupportsOdataFilter​(boolean supports)  
      void setSupportsOdataOrderBy​(boolean supports)  
      void setSupportsOdataSkip​(boolean supports)  
      void setSupportsOdataTop​(boolean supports)  
      void start()  
      boolean supportsAggregatesCount()  
      boolean supportsAggregatesCountStar()  
      boolean supportsCompareCriteriaEquals()  
      boolean supportsCompareCriteriaOrdered()  
      boolean supportsIsNullCriteria()  
      boolean supportsNotCriteria()  
      boolean supportsOdataBooleanFunctionsWithComparison()  
      boolean supportsOdataCount()  
      boolean supportsOdataFilter()  
      boolean supportsOdataOrderBy()  
      boolean supportsOdataSkip()  
      boolean supportsOdataTop()  
      boolean supportsOnlyLiteralComparison()  
      boolean supportsOrCriteria()  
      boolean supportsOrderBy()  
      boolean supportsOrderByUnrelated()  
      boolean supportsQuantifiedCompareCriteriaAll()  
      boolean supportsQuantifiedCompareCriteriaSome()  
      boolean supportsRowLimit()  
      boolean supportsRowOffset()  
      boolean useAnsiJoin()  
      • Methods inherited from class org.teiid.translator.ExecutionFactory

        addPushDownFunction, areLobsUsableAfterClose, closeConnection, createDirectExecution, createExecution, getCacheDirective, getCollationLocale, getConnection, getConnection, getDefaultNullOrder, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxFromGroups, getMaxInCriteriaSize, getMaxProjectedColumns, getNativeQueryProcedureName, getPushDownFunctions, getRequiredLikeEscape, getSupportedJoinCriteria, getTransactionSupport, getTypeFacility, initCapabilities, isCopyLobs, isForkable, isImmutable, isSourceRequired, isSourceRequiredForCapabilities, isSourceRequiredForMetadata, isThreadBound, requiresCriteria, returnsSingleUpdateCount, setCollationLocale, setCopyLobs, setDirectQueryProcedureName, setExcludedCommonTableExpressionName, setImmutable, setMaxDependentInPredicates, setMaxInCriteriaSize, setNativeQueryProcedureName, setRequiresCriteria, setSourceRequired, setSourceRequiredForMetadata, setSupportedJoinCriteria, setSupportsDirectQueryProcedure, setSupportsFullOuterJoins, setSupportsInnerJoins, setSupportsNativeQueries, setSupportsOrderBy, setSupportsOuterJoins, setSupportsSelectDistinct, setThreadBound, setTransactionSupport, supportsAdvancedOlapOperations, supportsAggregatesAvg, supportsAggregatesCountBig, supportsAggregatesDistinct, supportsAggregatesEnhancedNumeric, supportsAggregatesMax, supportsAggregatesMin, supportsAggregatesSum, supportsAliasedTable, supportsArrayAgg, supportsArrayType, supportsBatchedUpdates, supportsBulkUpdate, supportsCommonTableExpressions, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueries, supportsCorrelatedSubqueryLimit, supportsDependentJoins, supportsDirectQueryProcedure, supportsElementaryOlapOperations, supportsExcept, supportsExistsCriteria, supportsFormatLiteral, supportsFullDependentJoins, supportsFullOuterJoins, supportsFunctionsInGroupBy, supportsGeographyType, supportsGroupBy, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsHaving, supportsInCriteria, supportsInCriteriaSubquery, supportsInlineViews, supportsInnerJoins, supportsInsertWithQueryExpression, supportsIntersect, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsLikeRegex, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyFormatLiterals, supportsOnlyLateralJoinProcedure, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderByNullOrdering, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureParameterExpression, supportsProcedureTable, supportsRecursiveCommonTableExpressions, supportsScalarSubqueries, supportsScalarSubqueryProjection, supportsSearchedCaseExpressions, supportsSelectDistinct, supportsSelectExpression, supportsSelectExpressionArrayType, supportsSelectWithoutFrom, supportsSelfJoins, supportsSetQueryLimitOffset, supportsSetQueryOrderBy, supportsSimilarTo, supportsStringAgg, supportsSubqueryCommonTableExpressions, supportsSubqueryInOn, supportsUnions, supportsUpsert, supportsWindowDistinctAggregates, supportsWindowFrameClause, supportsWindowFunctionCumeDist, supportsWindowFunctionNthValue, supportsWindowFunctionNtile, supportsWindowFunctionPercentRank, supportsWindowOrderByWithAggregates, useBindingsForDependentJoin
    • Field Detail

      • DEFAULT_TIME_ZONE

        public static final TimeZone DEFAULT_TIME_ZONE
      • functionModifiers

        protected Map<String,​org.teiid.translator.jdbc.FunctionModifier> functionModifiers
    • Constructor Detail

      • ODataExecutionFactory

        public ODataExecutionFactory()
    • Method Detail

      • start

        public void start()
                   throws org.teiid.translator.TranslatorException
        Overrides:
        start in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
        Throws:
        org.teiid.translator.TranslatorException
      • getDatabaseTimeZone

        @TranslatorProperty(display="Database time zone",
                            description="Time zone of the database, if different than Integration Server",
                            advanced=true)
        public String getDatabaseTimeZone()
      • setDatabaseTimeZone

        public void setDatabaseTimeZone​(String databaseTimeZone)
      • getMetadata

        public void getMetadata​(org.teiid.metadata.MetadataFactory metadataFactory,
                                org.teiid.translator.ws.WSConnection conn)
                         throws org.teiid.translator.TranslatorException
        Overrides:
        getMetadata in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
        Throws:
        org.teiid.translator.TranslatorException
      • getMetadataProcessor

        public org.teiid.translator.MetadataProcessor<org.teiid.translator.ws.WSConnection> getMetadataProcessor()
        Overrides:
        getMetadataProcessor in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • createResultSetExecution

        public org.teiid.translator.ResultSetExecution createResultSetExecution​(org.teiid.language.QueryExpression command,
                                                                                org.teiid.translator.ExecutionContext executionContext,
                                                                                org.teiid.metadata.RuntimeMetadata metadata,
                                                                                org.teiid.translator.ws.WSConnection connection)
                                                                         throws org.teiid.translator.TranslatorException
        Overrides:
        createResultSetExecution in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
        Throws:
        org.teiid.translator.TranslatorException
      • createProcedureExecution

        public org.teiid.translator.ProcedureExecution createProcedureExecution​(org.teiid.language.Call command,
                                                                                org.teiid.translator.ExecutionContext executionContext,
                                                                                org.teiid.metadata.RuntimeMetadata metadata,
                                                                                org.teiid.translator.ws.WSConnection connection)
                                                                         throws org.teiid.translator.TranslatorException
        Overrides:
        createProcedureExecution in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
        Throws:
        org.teiid.translator.TranslatorException
      • createUpdateExecution

        public org.teiid.translator.UpdateExecution createUpdateExecution​(org.teiid.language.Command command,
                                                                          org.teiid.translator.ExecutionContext executionContext,
                                                                          org.teiid.metadata.RuntimeMetadata metadata,
                                                                          org.teiid.translator.ws.WSConnection connection)
                                                                   throws org.teiid.translator.TranslatorException
        Overrides:
        createUpdateExecution in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
        Throws:
        org.teiid.translator.TranslatorException
      • getSupportedFunctions

        public List<String> getSupportedFunctions()
        Overrides:
        getSupportedFunctions in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • getFunctionModifiers

        public Map<String,​org.teiid.translator.jdbc.FunctionModifier> getFunctionModifiers()
        Return a map of function name to FunctionModifier.
        Returns:
        Map of function name to FunctionModifier.
      • registerFunctionModifier

        public void registerFunctionModifier​(String name,
                                             org.teiid.translator.jdbc.FunctionModifier modifier)
        Add the FunctionModifier to the set of known modifiers.
        Parameters:
        name -
        modifier -
      • getDefaultSupportedFunctions

        public List<String> getDefaultSupportedFunctions()
      • supportsOdataFilter

        @TranslatorProperty(display="Supports $Filter",
                            description="True, $filter is supported",
                            advanced=true)
        public boolean supportsOdataFilter()
      • setSupportsOdataFilter

        public void setSupportsOdataFilter​(boolean supports)
      • supportsOdataOrderBy

        @TranslatorProperty(display="Supports $OrderBy",
                            description="True, $orderby is supported",
                            advanced=true)
        public boolean supportsOdataOrderBy()
      • setSupportsOdataOrderBy

        public void setSupportsOdataOrderBy​(boolean supports)
      • supportsOdataCount

        @TranslatorProperty(display="Supports $count",
                            description="True, $count is supported",
                            advanced=true)
        public boolean supportsOdataCount()
      • setSupportsOdataCount

        public void setSupportsOdataCount​(boolean supports)
      • supportsOdataSkip

        @TranslatorProperty(display="Supports $skip",
                            description="True, $skip is supported",
                            advanced=true)
        public boolean supportsOdataSkip()
      • setSupportsOdataSkip

        public void setSupportsOdataSkip​(boolean supports)
      • supportsOdataTop

        @TranslatorProperty(display="Supports $top",
                            description="True, $top is supported",
                            advanced=true)
        public boolean supportsOdataTop()
      • setSupportsOdataTop

        public void setSupportsOdataTop​(boolean supports)
      • supportsOdataBooleanFunctionsWithComparison

        @TranslatorProperty(display="Supports boolean functions with comparison",
                            description="True, you can use \'substringsof(a, b) eq true\' for instance",
                            advanced=true)
        public boolean supportsOdataBooleanFunctionsWithComparison()
      • setSupportsOdataBooleanFunctionsWithComparison

        public void setSupportsOdataBooleanFunctionsWithComparison​(boolean supports)
      • supportsCompareCriteriaEquals

        public boolean supportsCompareCriteriaEquals()
        Overrides:
        supportsCompareCriteriaEquals in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsCompareCriteriaOrdered

        public boolean supportsCompareCriteriaOrdered()
        Overrides:
        supportsCompareCriteriaOrdered in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsIsNullCriteria

        public boolean supportsIsNullCriteria()
        Overrides:
        supportsIsNullCriteria in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsOrCriteria

        public boolean supportsOrCriteria()
        Overrides:
        supportsOrCriteria in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsNotCriteria

        public boolean supportsNotCriteria()
        Overrides:
        supportsNotCriteria in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsQuantifiedCompareCriteriaSome

        public boolean supportsQuantifiedCompareCriteriaSome()
        Overrides:
        supportsQuantifiedCompareCriteriaSome in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsQuantifiedCompareCriteriaAll

        public boolean supportsQuantifiedCompareCriteriaAll()
        Overrides:
        supportsQuantifiedCompareCriteriaAll in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsOrderBy

        @TranslatorProperty(display="Supports ORDER BY",
                            description="True, if this connector supports ORDER BY",
                            advanced=true)
        public boolean supportsOrderBy()
        Overrides:
        supportsOrderBy in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsOrderByUnrelated

        public boolean supportsOrderByUnrelated()
        Overrides:
        supportsOrderByUnrelated in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsAggregatesCount

        public boolean supportsAggregatesCount()
        Overrides:
        supportsAggregatesCount in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsAggregatesCountStar

        public boolean supportsAggregatesCountStar()
        Overrides:
        supportsAggregatesCountStar in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsRowLimit

        public boolean supportsRowLimit()
        Overrides:
        supportsRowLimit in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsRowOffset

        public boolean supportsRowOffset()
        Overrides:
        supportsRowOffset in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • supportsOnlyLiteralComparison

        public boolean supportsOnlyLiteralComparison()
        Overrides:
        supportsOnlyLiteralComparison in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • useAnsiJoin

        public boolean useAnsiJoin()
        Overrides:
        useAnsiJoin in class org.teiid.translator.ExecutionFactory<org.teiid.resource.api.ConnectionFactory,​org.teiid.translator.ws.WSConnection>
      • retrieveValue

        public Object retrieveValue​(Object value,
                                    Class<?> expectedType)
        Parameters:
        value -
        expectedType -
        Returns:
      • convertToODataInput

        public void convertToODataInput​(org.teiid.language.Literal obj,
                                        StringBuilder sb)