Class DefaultDBTranslator
- java.lang.Object
-
- com.inductiveautomation.ignition.gateway.db.DefaultDBTranslator
-
- All Implemented Interfaces:
DBTranslator
public class DefaultDBTranslator extends java.lang.Object implements DBTranslator
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.inductiveautomation.ignition.gateway.db.DBTranslator
DBTranslator.Tokens
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
alterColumnDef
protected java.lang.String
alterTable
protected java.lang.String
autoIncTypeDef
protected java.lang.String
columnQuoteChar
protected java.lang.String
createAISequence
protected java.lang.String
createAITrigger
protected java.lang.String
createIndex
protected java.lang.String
createTable
protected java.lang.String
currentTimeQuery
protected java.lang.String
limitDef
protected LimitPosition
limitPos
protected int
maxIdentifierLength
protected java.lang.String
primaryKeyDef
protected java.lang.String
readGKQuery
protected boolean
supportsRgk
protected java.lang.String
tableListFilter
protected java.util.EnumMap<DataType,java.lang.String>
typeMap
-
Constructor Summary
Constructors Constructor Description DefaultDBTranslator()
DefaultDBTranslator(java.lang.String cTable, java.lang.String cAISeq, java.lang.String cAITrig, java.lang.String cNdx, java.lang.String autoInc, java.lang.String lDef, LimitPosition lPos, java.lang.String aTable, java.lang.String aTableColumn, java.lang.String pKey, java.lang.String qCurTime, java.util.EnumMap<DataType,java.lang.String> tMap, java.lang.String colQuoteChar, boolean supportsRgk, java.lang.String fetchRgkQuery, java.lang.String tableListFilter)
DefaultDBTranslator(java.util.EnumMap<DataType,java.lang.String> tMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
applyLimit(java.lang.String query, java.lang.Integer limit)
Takes a SELECT query and applies the given limit to it, resulting in a select query with a limiting clause.protected java.util.EnumMap<DataType,java.lang.String>
createTypeMap()
java.util.List<java.lang.String>
getAlterCommand(java.lang.String tableName, ColumnList columns)
java.lang.String
getColumnQuoteChar()
Returns the character that this driver uses to quote names in queriesjava.util.List<java.lang.String>
getCreateCommand(java.lang.String tableName, ColumnList columns)
java.lang.String
getCreateIndexCommand(java.lang.String tableName, Column column)
protected java.lang.String
getCreationDef(ColumnList columns)
java.lang.String
getCurrentTimeQuery()
Returns a query that can be used to get the current database time.protected java.lang.String
getDataTypeKeyword(DataType type)
java.lang.String
getFetchKeyQuery(java.lang.String tableName, java.lang.String columnName)
A query to be executed instead of using JDBC's built-in facility for obtaining auto-generated keys.protected java.lang.String
getShortendName(java.lang.String name)
protected java.lang.String
getSpecialtyDef(java.lang.String tokenVal, java.lang.String definition, java.lang.String token)
java.lang.String
getTableListFilter()
Returns a filter that will be used to narrow the list of tables returned from the database.boolean
isSupportsRGK()
java.lang.String
quoteColumn(Column col)
java.lang.String
quoteColumn(java.lang.String col)
protected java.lang.String
replaceToken(java.lang.String source, java.lang.String token, java.lang.String value)
protected java.lang.String
replaceTokens(java.lang.String source, java.util.List<java.lang.String> tokens, java.util.List<java.lang.String> value)
-
-
-
Field Detail
-
createTable
protected java.lang.String createTable
-
createAISequence
protected java.lang.String createAISequence
-
createAITrigger
protected java.lang.String createAITrigger
-
createIndex
protected java.lang.String createIndex
-
autoIncTypeDef
protected java.lang.String autoIncTypeDef
-
limitDef
protected java.lang.String limitDef
-
limitPos
protected LimitPosition limitPos
-
alterTable
protected java.lang.String alterTable
-
alterColumnDef
protected java.lang.String alterColumnDef
-
primaryKeyDef
protected java.lang.String primaryKeyDef
-
currentTimeQuery
protected java.lang.String currentTimeQuery
-
columnQuoteChar
protected java.lang.String columnQuoteChar
-
supportsRgk
protected boolean supportsRgk
-
readGKQuery
protected java.lang.String readGKQuery
-
tableListFilter
protected java.lang.String tableListFilter
-
maxIdentifierLength
protected int maxIdentifierLength
-
typeMap
protected java.util.EnumMap<DataType,java.lang.String> typeMap
-
-
Constructor Detail
-
DefaultDBTranslator
public DefaultDBTranslator()
-
DefaultDBTranslator
public DefaultDBTranslator(java.util.EnumMap<DataType,java.lang.String> tMap)
-
DefaultDBTranslator
public DefaultDBTranslator(java.lang.String cTable, java.lang.String cAISeq, java.lang.String cAITrig, java.lang.String cNdx, java.lang.String autoInc, java.lang.String lDef, LimitPosition lPos, java.lang.String aTable, java.lang.String aTableColumn, java.lang.String pKey, java.lang.String qCurTime, java.util.EnumMap<DataType,java.lang.String> tMap, java.lang.String colQuoteChar, boolean supportsRgk, java.lang.String fetchRgkQuery, java.lang.String tableListFilter)
-
-
Method Detail
-
createTypeMap
protected java.util.EnumMap<DataType,java.lang.String> createTypeMap()
-
getCurrentTimeQuery
public java.lang.String getCurrentTimeQuery()
Description copied from interface:DBTranslator
Returns a query that can be used to get the current database time.- Specified by:
getCurrentTimeQuery
in interfaceDBTranslator
-
quoteColumn
public java.lang.String quoteColumn(Column col)
-
quoteColumn
public java.lang.String quoteColumn(java.lang.String col)
-
getCreateCommand
public java.util.List<java.lang.String> getCreateCommand(java.lang.String tableName, ColumnList columns)
- Specified by:
getCreateCommand
in interfaceDBTranslator
-
applyLimit
public java.lang.String applyLimit(java.lang.String query, java.lang.Integer limit)
Description copied from interface:DBTranslator
Takes a SELECT query and applies the given limit to it, resulting in a select query with a limiting clause. If the incoming query already has a limit clause, the existing text will be used (that is, nothing further will be done).- Specified by:
applyLimit
in interfaceDBTranslator
-
getAlterCommand
public java.util.List<java.lang.String> getAlterCommand(java.lang.String tableName, ColumnList columns)
- Specified by:
getAlterCommand
in interfaceDBTranslator
-
getCreateIndexCommand
public java.lang.String getCreateIndexCommand(java.lang.String tableName, Column column)
- Specified by:
getCreateIndexCommand
in interfaceDBTranslator
-
getShortendName
protected java.lang.String getShortendName(java.lang.String name)
-
getCreationDef
protected java.lang.String getCreationDef(ColumnList columns)
-
getSpecialtyDef
protected java.lang.String getSpecialtyDef(java.lang.String tokenVal, java.lang.String definition, java.lang.String token)
-
replaceToken
protected java.lang.String replaceToken(java.lang.String source, java.lang.String token, java.lang.String value)
-
replaceTokens
protected java.lang.String replaceTokens(java.lang.String source, java.util.List<java.lang.String> tokens, java.util.List<java.lang.String> value)
-
getDataTypeKeyword
protected java.lang.String getDataTypeKeyword(DataType type)
-
getColumnQuoteChar
public java.lang.String getColumnQuoteChar()
Description copied from interface:DBTranslator
Returns the character that this driver uses to quote names in queries- Specified by:
getColumnQuoteChar
in interfaceDBTranslator
-
getFetchKeyQuery
public java.lang.String getFetchKeyQuery(java.lang.String tableName, java.lang.String columnName)
Description copied from interface:DBTranslator
A query to be executed instead of using JDBC's built-in facility for obtaining auto-generated keys. Only used if supportsRGK is false. Takes the table name and column name in case the query needs to use them- it will depend on the database as to whether or not they are.- Specified by:
getFetchKeyQuery
in interfaceDBTranslator
-
isSupportsRGK
public boolean isSupportsRGK()
- Specified by:
isSupportsRGK
in interfaceDBTranslator
- Returns:
- whether or not this driver supports returning generated keys on insert queries
-
getTableListFilter
public java.lang.String getTableListFilter()
Description copied from interface:DBTranslator
Returns a filter that will be used to narrow the list of tables returned from the database. A semi-colon separated list of simple patterns, like "apex_*;sys_info*"- Specified by:
getTableListFilter
in interfaceDBTranslator
-
-