Package org.apache.torque.templates.platform

# Class PlatformHsqldbImpl

java.lang.Object
org.apache.torque.templates.platform.PlatformDefaultImpl
org.apache.torque.templates.platform.PlatformHsqldbImpl

All Implemented Interfaces:
  `Platform`

public class PlatformHsqldbImpl extends PlatformDefaultImpl
HSQLDB (formerly known as Hypersonic) Platform implementation.

Version:
  $Id: PlatformHsqldbImpl.java 1917240 2024-04-21 13:22:54Z tv $
Author:
  Martin Poeschl

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PlatformHsqldbImpl()`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `createNotNullBeforeAutoincrement()`
  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 boolean`
  `escapeBackslashes()`
  Returns whether backslashes must be escaped in string literals.
  `String`
  `getAutoIncrement()`
  `String`
  `getDateString(Date date)`
  Formats the given date as date string which is parseable by the database.
  `String`
  `getTimeString(Date date)`
  Formats the given date as time string which is parseable by the database.
  `boolean`
  `hasScale(String sqlType)`
  Returns if the RDBMS-specific SQL type has a scale attribute.
  `boolean`
  `hasSize(String sqlType)`
  Caveat, read HSQLDB e.g.
  `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.

  ### Methods inherited from class org.apache.torque.templates.platform.PlatformDefaultImpl

  `formatDateTimeString, getNullString, getSizeSuffix, getSqlTypeForSchemaType, getTimestampString, hasUniqueConstraintSize, quoteAndEscape, setSchemaTypeToSqlTypeMapping`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### PlatformHsqldbImpl

    public PlatformHsqldbImpl()
    Default constructor.

- ## Method Details

  - ### getAutoIncrement

    public String getAutoIncrement()
    Specified by:
      `getAutoIncrement` in interface `Platform`
    Overrides:
      `getAutoIncrement` in class `PlatformDefaultImpl`
    Returns:
      The RDBMS-specific SQL fragment for autoincrement.
    See Also:
      - `Platform.getAutoIncrement()`

  - ### createNotNullBeforeAutoincrement

    public boolean createNotNullBeforeAutoincrement()
    Returns 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:
      `createNotNullBeforeAutoincrement` in interface `Platform`
    Overrides:
      `createNotNullBeforeAutoincrement` in class `PlatformDefaultImpl`
    Returns:
      false.
    See Also:
      - `Platform.createNotNullBeforeAutoincrement()`

  - ### escapeBackslashes

    protected boolean escapeBackslashes()
    Description copied from class: `PlatformDefaultImpl`
    Returns whether backslashes must be escaped in string literals.
    Overrides:
      `escapeBackslashes` in class `PlatformDefaultImpl`
    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:
      `getDateString` in interface `Platform`
    Overrides:
      `getDateString` in class `PlatformDefaultImpl`
    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:
      `getTimeString` in interface `Platform`
    Overrides:
      `getTimeString` in class `PlatformDefaultImpl`
    Parameters:
      `date` - the date to format.
    Returns:
      the time 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:
      `usesStandaloneSchema` in interface `Platform`
    Overrides:
      `usesStandaloneSchema` in class `PlatformDefaultImpl`
    Returns:
      this implementation returns true.

  - ### hasSize

    public boolean hasSize(String sqlType)
    Caveat, read HSQLDB e.g. Do not use BINARY(L) unless you are storing keys such as UUID. This type pads short binary strings with zero bytes. BINARY without the length L means a single byte.
    Specified by:
      `hasSize` in interface `Platform`
    Overrides:
      `hasSize` in class `PlatformDefaultImpl`
    Parameters:
      `sqlType` - the SQL type
    Returns:
      true if the type has a size attribute
    See Also:
      - `TODO collect info for all platforms`

  - ### hasScale

    public boolean hasScale(String sqlType)
    Description copied from interface: `Platform`
    Returns if the RDBMS-specific SQL type has a scale attribute.
    Specified by:
      `hasScale` in interface `Platform`
    Overrides:
      `hasScale` in class `PlatformDefaultImpl`
    Parameters:
      `sqlType` - the SQL type
    Returns:
      true if the type has a scale attribute
    See Also:
      - `TODO collect info for all platforms`