|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.teiid.translator.jdbc.FunctionModifier
org.teiid.translator.jdbc.AliasModifier
org.teiid.translator.jdbc.LocateFunctionModifier
public class LocateFunctionModifier
A modifier class that can be used to translate the scalar function
locate(search_string, source_string) and
locate(search_string, source_string, start_index) to a function
or expression that can be used at the data source.
If the default implementation is used, a function name of LOCATE will be used for the function name.
If the default implementation is used, the expression will not be modified if:
locate(search_string, source_string) is usedlocate(search_string, source_string, start_index) is used
and start_index is a literal integer greater then 0If the default implementation is used, the expression will be modified if:
locate(search_string, source_string, start_index) is used
and start_index is a literal integer less then 1locate(search_string, source_string, start_index) is used
and start_index is not a literal integerIf the default implementation is used and the expression is modified, it is modified to ensure that any literal integer value less than 1 is made equal to 1 and any non literal value is wrapped by a searched case expression to ensure that a value of less then 1 will be equal to 1 and the parameter order matches that of what the data source expects.
For example:
locate('a', 'abcdef') --> LOCATE('a', 'abcdef')locate('a', 'abcdef', 2) --> LOCATE('a', 'abcdef', 2)locate('a', 'abcdef', 0) --> LOCATE('a', 'abcdef', 1)locate('a', 'abcdef', intCol) --> LOCATE('a', 'abcdef', CASE WHEN intCol < 1 THEN 1 ELSE intCol END)
| Field Summary | |
|---|---|
static java.lang.String |
LOCATE
|
| Fields inherited from class org.teiid.translator.jdbc.AliasModifier |
|---|
alias |
| Fields inherited from class org.teiid.translator.jdbc.FunctionModifier |
|---|
BIGDECIMAL, BIGINTEGER, BLOB, BOOLEAN, BYTE, CHAR, CLOB, DATE, DOUBLE, FLOAT, INTEGER, LONG, OBJECT, SHORT, STRING, TIME, TIMESTAMP, XML |
| Constructor Summary | |
|---|---|
LocateFunctionModifier(LanguageFactory langFactory)
Translates the scalar function LOCATE() to a source specific scalar function or expression. |
|
LocateFunctionModifier(LanguageFactory langFactory,
java.lang.String functionName,
boolean sourceStringFirst)
Translates the scalar function LOCATE() to a source specific scalar function or expression. |
|
| Method Summary | |
|---|---|
protected LanguageFactory |
getLanguageFactory()
Get the instance of LanguageFactory set during construction. |
void |
modify(Function function)
Returns a version of function suitable for executing at the
data source. |
| Methods inherited from class org.teiid.translator.jdbc.AliasModifier |
|---|
translate |
| Methods inherited from class org.teiid.translator.jdbc.FunctionModifier |
|---|
getCode |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static java.lang.String LOCATE
| Constructor Detail |
|---|
public LocateFunctionModifier(LanguageFactory langFactory)
langFactory - the language factory associated with translation
public LocateFunctionModifier(LanguageFactory langFactory,
java.lang.String functionName,
boolean sourceStringFirst)
langFactory - the language factory associated with translationfunctionName - the function name or alias to be used instead of LOCATEsourceStringFirst - | Method Detail |
|---|
public void modify(Function function)
function suitable for executing at the
data source.
For example:
locate('a', 'abcdefg') ---> LOCATE('a', 'abcdefg')locate('a', 'abcdefg', 1) ---> LOCATE('a', 'abcdefg', 1)locate('a', 'abcdefg', 1) ---> INSTR('abcdefg', 'a', 1)locate('a', 'abcdefg', -5) ---> INSTR('abcdefg', 'a', 1)locate('a', 'abcdefg', 1) ---> FINDSTR('a', 'abcdefg', 1)locate('a', 'abcdefg', myCol) ---> LOCATE('a', 'abcdefg', CASE WHEN myCol < 1 THEN 1 ELSE myCol END)
modify in class AliasModifierfunction - the LOCATE function that may need to be modifiedprotected LanguageFactory getLanguageFactory()
LanguageFactory set during construction.
ILanguageFactory instance
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||