@Translator(name="odata4", description="A translator for making OData V4 data service calls") public class ODataExecutionFactory extends ExecutionFactory<ConnectionFactory,WSConnection>
ExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport
Modifier and Type | Field and Description |
---|---|
static TimeZone |
DEFAULT_TIME_ZONE |
protected Map<String,FunctionModifier> |
functionModifiers |
DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
Constructor and Description |
---|
ODataExecutionFactory() |
Modifier and Type | Method and Description |
---|---|
ProcedureExecution |
createProcedureExecution(Call command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
WSConnection connection) |
ResultSetExecution |
createResultSetExecution(QueryExpression command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
WSConnection connection) |
UpdateExecution |
createUpdateExecution(Command command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
WSConnection connection) |
protected String |
escapeString(String str,
String quote) |
List<String> |
getDefaultSupportedFunctions() |
Map<String,FunctionModifier> |
getFunctionModifiers()
Return a map of function name to FunctionModifier.
|
void |
getMetadata(MetadataFactory metadataFactory,
WSConnection conn)
Implement to provide metadata to the metadata for use by the engine.
|
MetadataProcessor<WSConnection> |
getMetadataProcessor()
Get a MetadataProcessor for the translator to read the metadata.
|
protected org.apache.olingo.client.api.edm.xml.XMLMetadata |
getSchema(WSConnection conn) |
List<String> |
getSupportedFunctions()
Get list of all supported function names.
|
void |
registerFunctionModifier(String name,
FunctionModifier modifier)
Add the
FunctionModifier to the set of known modifiers. |
void |
setSupportsOdataCount(boolean supports) |
void |
setSupportsOdataFilter(boolean supports) |
void |
setSupportsOdataOrderBy(boolean supports) |
void |
setSupportsOdataSkip(boolean supports) |
void |
setSupportsOdataTop(boolean supports) |
void |
setSupportsUpdates(boolean supports) |
void |
start()
Initialize the connector with supplied configuration
|
boolean |
supportsAggregatesCount()
Support indicates connector can accept the COUNT aggregate function
|
boolean |
supportsAggregatesCountStar()
Support indicates connector can accept the COUNT(*) aggregate function
|
boolean |
supportsArrayType()
The engine uses array types for dependent joins and for array expression.
|
boolean |
supportsCompareCriteriaEquals()
Support indicates connector accepts criteria of form (element = constant)
|
boolean |
supportsCompareCriteriaOrdered()
Support indicates connector accepts criteria of form (element <=|>= constant)
The query engine will may pushdown queries containing < or > if NOT is also supported. |
boolean |
supportsGeographyType()
If the geography type is supported by the standard ST_ geospatial functions
|
boolean |
supportsInCriteria()
Support indicates connector accepts criteria of form (element IN set)
|
boolean |
supportsIsNullCriteria()
Support indicates connector accepts criteria of form (element IS NULL)
|
boolean |
supportsNotCriteria()
Support indicates connector accepts logical criteria NOT
|
boolean |
supportsOdataCount() |
boolean |
supportsOdataFilter() |
boolean |
supportsOdataOrderBy() |
boolean |
supportsOdataSkip() |
boolean |
supportsOdataTop() |
boolean |
supportsOnlyLiteralComparison() |
boolean |
supportsOrCriteria()
Support indicates connector accepts logical criteria connected by OR
|
boolean |
supportsOrderBy()
Support indicates connector accepts ORDER BY clause, including multiple elements
and ascending and descending sorts.
|
boolean |
supportsOrderByUnrelated()
Support indicates connector accepts ORDER BY clause with columns not from the select
|
boolean |
supportsQuantifiedCompareCriteriaAll()
Support indicates connector accepts the quantified comparison criteria that
use ALL
|
boolean |
supportsQuantifiedCompareCriteriaSome()
Support indicates connector accepts the quantified comparison criteria that
use SOME
|
boolean |
supportsRowLimit()
Gets whether the connector can limit the number of rows returned by a query.
|
boolean |
supportsRowOffset()
Gets whether the connector supports a SQL clause (similar to the LIMIT with an offset) that can return
result sets that start in the middle of the resulting rows returned by a query
|
boolean |
supportsUpdates() |
boolean |
useAnsiJoin()
Whether the source prefers to use ANSI style joins.
|
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, supportsBatchedUpdates, supportsBulkUpdate, supportsCommonTableExpressions, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueries, supportsCorrelatedSubqueryLimit, supportsDependentJoins, supportsDirectQueryProcedure, supportsElementaryOlapOperations, supportsExcept, supportsExistsCriteria, supportsFormatLiteral, supportsFullDependentJoins, supportsFullOuterJoins, supportsFunctionsInGroupBy, supportsGroupBy, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsHaving, supportsInCriteriaSubquery, supportsInlineViews, supportsInnerJoins, supportsInsertWithQueryExpression, supportsIntersect, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsLikeRegex, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyFormatLiterals, supportsOnlyLateralJoinProcedure, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderByNullOrdering, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, 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
public static final TimeZone DEFAULT_TIME_ZONE
protected Map<String,FunctionModifier> functionModifiers
public void start() throws TranslatorException
ExecutionFactory
start
in class ExecutionFactory<ConnectionFactory,WSConnection>
TranslatorException
public void getMetadata(MetadataFactory metadataFactory, WSConnection conn) throws TranslatorException
ExecutionFactory
getMetadata
in class ExecutionFactory<ConnectionFactory,WSConnection>
conn
- may be null if the source is not requiredTranslatorException
- to indicate a recoverable error, otherwise a RuntimeExceptionExecutionFactory.isSourceRequiredForMetadata()
public MetadataProcessor<WSConnection> getMetadataProcessor()
ExecutionFactory
getMetadataProcessor
in class ExecutionFactory<ConnectionFactory,WSConnection>
protected org.apache.olingo.client.api.edm.xml.XMLMetadata getSchema(WSConnection conn) throws TranslatorException
TranslatorException
public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException
createResultSetExecution
in class ExecutionFactory<ConnectionFactory,WSConnection>
TranslatorException
public ProcedureExecution createProcedureExecution(Call command, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException
createProcedureExecution
in class ExecutionFactory<ConnectionFactory,WSConnection>
TranslatorException
public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, WSConnection connection) throws TranslatorException
createUpdateExecution
in class ExecutionFactory<ConnectionFactory,WSConnection>
TranslatorException
public List<String> getSupportedFunctions()
ExecutionFactory
getSupportedFunctions
in class ExecutionFactory<ConnectionFactory,WSConnection>
for a listing of system pushdown functions. Note that
not all system functions are listed as some functions will use a common name
such as CONCAT vs. the || operator, and other functions will be rewritten and
not pushed down, such as SPACE.
Note: User defined functions should be specified fully qualified.
public Map<String,FunctionModifier> getFunctionModifiers()
public void registerFunctionModifier(String name, FunctionModifier modifier)
FunctionModifier
to the set of known modifiers.name
- modifier
- @TranslatorProperty(display="Supports $Filter", description="True, $filter is supported", advanced=true) public boolean supportsOdataFilter()
public void setSupportsOdataFilter(boolean supports)
@TranslatorProperty(display="Supports $OrderBy", description="True, $orderby is supported", advanced=true) public boolean supportsOdataOrderBy()
public void setSupportsOdataOrderBy(boolean supports)
@TranslatorProperty(display="Supports $count", description="True, $count is supported", advanced=true) public boolean supportsOdataCount()
public void setSupportsOdataCount(boolean supports)
@TranslatorProperty(display="Supports $skip", description="True, $skip is supported", advanced=true) public boolean supportsOdataSkip()
public void setSupportsOdataSkip(boolean supports)
@TranslatorProperty(display="Supports $top", description="True, $top is supported", advanced=true) public boolean supportsOdataTop()
public void setSupportsOdataTop(boolean supports)
@TranslatorProperty(display="Supports Updates", description="True, if(PUT,PATCH,DELETE) operations supported", advanced=true) public boolean supportsUpdates()
public void setSupportsUpdates(boolean supports)
public boolean supportsCompareCriteriaEquals()
ExecutionFactory
supportsCompareCriteriaEquals
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsCompareCriteriaOrdered()
ExecutionFactory
supportsCompareCriteriaOrdered
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsIsNullCriteria()
ExecutionFactory
supportsIsNullCriteria
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsOrCriteria()
ExecutionFactory
supportsOrCriteria
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsNotCriteria()
ExecutionFactory
supportsNotCriteria
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsInCriteria()
ExecutionFactory
supportsInCriteria
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsQuantifiedCompareCriteriaSome()
ExecutionFactory
supportsQuantifiedCompareCriteriaSome
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsQuantifiedCompareCriteriaAll()
ExecutionFactory
supportsQuantifiedCompareCriteriaAll
in class ExecutionFactory<ConnectionFactory,WSConnection>
@TranslatorProperty(display="Supports ORDER BY", description="True, if this connector supports ORDER BY", advanced=true) public boolean supportsOrderBy()
ExecutionFactory
supportsOrderBy
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsOrderByUnrelated()
ExecutionFactory
supportsOrderByUnrelated
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsAggregatesCount()
ExecutionFactory
supportsAggregatesCount
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsAggregatesCountStar()
ExecutionFactory
supportsAggregatesCountStar
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsRowLimit()
ExecutionFactory
supportsRowLimit
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsRowOffset()
ExecutionFactory
supportsRowOffset
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsOnlyLiteralComparison()
supportsOnlyLiteralComparison
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean useAnsiJoin()
ExecutionFactory
useAnsiJoin
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsArrayType()
ExecutionFactory
supportsArrayType
in class ExecutionFactory<ConnectionFactory,WSConnection>
public boolean supportsGeographyType()
ExecutionFactory
supportsGeographyType
in class ExecutionFactory<ConnectionFactory,WSConnection>
Copyright © 2019. All rights reserved.