Class PlatformDefaultImpl
- java.lang.Object
-
- org.apache.torque.templates.platform.PlatformDefaultImpl
-
- All Implemented Interfaces:
Platform
- Direct Known Subclasses:
PlatformDerbyImpl,PlatformHsqldbImpl,PlatformMssqlImpl,PlatformMysqlImpl,PlatformOracleImpl,PlatformPostgresqlImpl
public class PlatformDefaultImpl extends Object implements Platform
Default implementation for the Platform interface.- Version:
- $Id: PlatformDefaultImpl.java 1896195 2021-12-20 17:41:20Z gk $
- Author:
- Martin Poeschl
-
-
Constructor Summary
Constructors Constructor Description PlatformDefaultImpl()Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancreateNotNullBeforeAutoincrement()Returns whether the "not null part" of the definition of a column should be generated before the "autoincrement part" in a "create table" statement.protected booleanescapeBackslashes()Returns whether backslashes must be escaped in string literals.protected StringformatDateTimeString(Date date, String format)Helper function to format date values to a platform-specific string.StringgetAutoIncrement()StringgetDateString(Date date)Formats the given date as date string which is parseable by the database.StringgetNullString(boolean notNull)StringgetSizeSuffix(String sqlType)Returns a possible SQL suffix for column definitions of certain SQL Types, e.g. for Oracle VARCHAR2 columns, it typically makes sense to use 'x CHAR' instead of 'x' as size.SqlTypegetSqlTypeForSchemaType(SchemaType schemaType)Returns the db specific SQL type for a Torque type.StringgetTimestampString(Date date)Formats the given date as timestamp string which is parseable by the database.StringgetTimeString(Date date)Formats the given date as time string which is parseable by the database.booleanhasScale(String sqlType)Returns if the RDBMS-specific SQL type has a scale attribute.booleanhasSize(String sqlType)Returns if the RDBMS-specific SQL type has a size attribute.booleanhasUniqueConstraintSize()Returns whether the database has schema support unique constraint for columns with sizeStringquoteAndEscape(String text)Quotes and escapes a string such that it can be used as literal String value in SQL.protected voidsetSchemaTypeToSqlTypeMapping(SchemaType schemaType, SqlType sqlType)Adds a mapping to the torque schema type -> sql type map.booleanusesStandaloneSchema()Returns whether the database has schema support where a schema is not tied to a user (oracle) or database (mysql), but can be created separately.
-
-
-
Method Detail
-
setSchemaTypeToSqlTypeMapping
protected void setSchemaTypeToSqlTypeMapping(SchemaType schemaType, SqlType sqlType)
Adds a mapping to the torque schema type -> sql type map.- Parameters:
schemaType- the torque schema type which should be mapped, not null.sqlType- the sql type for the torque schema type, not null.
-
formatDateTimeString
protected String formatDateTimeString(Date date, String format)
Helper function to format date values to a platform-specific string. setZoneIdto GMT timezone.- Parameters:
date- the Date objectformat- the format string- Returns:
- the formatted string
-
getSqlTypeForSchemaType
public SqlType getSqlTypeForSchemaType(SchemaType schemaType)
Description copied from interface:PlatformReturns the db specific SQL type for a Torque type.- Specified by:
getSqlTypeForSchemaTypein interfacePlatform- Parameters:
schemaType- the Torque type, not null.- Returns:
- the db specific SQL type, or null if no SQL type is defined for the given Torque type.
- See Also:
Platform.getSqlTypeForSchemaType(SchemaType)
-
getNullString
public String getNullString(boolean notNull)
- Specified by:
getNullStringin interfacePlatform- Parameters:
notNull- flag for not null- Returns:
- Only produces a SQL fragment if null values are disallowed.
- See Also:
Platform.getNullString(boolean)
-
getAutoIncrement
public String getAutoIncrement()
- Specified by:
getAutoIncrementin interfacePlatform- Returns:
- The RDBMS-specific SQL fragment for autoincrement.
- See Also:
Platform.getAutoIncrement()
-
hasScale
public boolean hasScale(String sqlType)
Description copied from interface:PlatformReturns if the RDBMS-specific SQL type has a scale attribute.- Specified by:
hasScalein interfacePlatform- Parameters:
sqlType- the SQL type- Returns:
- true if the type has a scale attribute
- See Also:
TODO collect info for all platforms
-
hasSize
public boolean hasSize(String sqlType)
Description copied from interface:PlatformReturns if the RDBMS-specific SQL type has a size attribute.- Specified by:
hasSizein interfacePlatform- Parameters:
sqlType- the SQL type- Returns:
- true if the type has a size attribute
- See Also:
TODO collect info for all platforms
-
getSizeSuffix
public String getSizeSuffix(String sqlType)
Returns a possible SQL suffix for column definitions of certain SQL Types, e.g. for Oracle VARCHAR2 columns, it typically makes sense to use 'x CHAR' instead of 'x' as size.- Specified by:
getSizeSuffixin interfacePlatform- Parameters:
sqlType- the SQL type to determine the suffix for.- Returns:
- The size suffix, not null. This implementation always returns the empty string.
-
createNotNullBeforeAutoincrement
public boolean createNotNullBeforeAutoincrement()
Description copied from interface:PlatformReturns whether the "not null part" of the definition of a column should be generated before the "autoincrement part" in a "create table" statement.- Specified by:
createNotNullBeforeAutoincrementin interfacePlatform- Returns:
- true if the "not null part" should be first, false if the "autoincrement part" should be first in a "create table" statement.
- See Also:
Platform.createNotNullBeforeAutoincrement()
-
quoteAndEscape
public String quoteAndEscape(String text)
Description copied from interface:PlatformQuotes and escapes a string such that it can be used as literal String value in SQL.- Specified by:
quoteAndEscapein interfacePlatform- Parameters:
text- The string to escape, or null.- Returns:
- the escaped String, not null.
- See Also:
Platform.quoteAndEscape(String)
-
escapeBackslashes
protected boolean escapeBackslashes()
Returns whether backslashes must be escaped in string literals.- Returns:
- true if backslashes bust be escaped, false otherwise.
-
getDateString
public String getDateString(Date date)
Formats the given date as date string which is parseable by the database.- Specified by:
getDateStringin interfacePlatform- Parameters:
date- the date to format.- Returns:
- the date string, inclusive string escaping.
-
getTimeString
public String getTimeString(Date date)
Formats the given date as time string which is parseable by the database.- Specified by:
getTimeStringin interfacePlatform- Parameters:
date- the date to format.- Returns:
- the time string, inclusive string escaping.
-
getTimestampString
public String getTimestampString(Date date)
Formats the given date as timestamp string which is parseable by the database.- Specified by:
getTimestampStringin interfacePlatform- Parameters:
date- the date to format.- Returns:
- the timestamp string, inclusive string escaping.
-
usesStandaloneSchema
public boolean usesStandaloneSchema()
Returns whether the database has schema support where a schema is not tied to a user (oracle) or database (mysql), but can be created separately.- Specified by:
usesStandaloneSchemain interfacePlatform- Returns:
- this implementation returns false.
-
hasUniqueConstraintSize
public boolean hasUniqueConstraintSize()
Description copied from interface:PlatformReturns whether the database has schema support unique constraint for columns with size- Specified by:
hasUniqueConstraintSizein interfacePlatform- Returns:
- true if unique column constraint has size
-
-