Class DMoneyType

All Implemented Interfaces:
DataType<DMoney>

@Service(DataType.class) public class DMoneyType extends AbstractDataType<DMoney>
Datatype for DMoney.
Stored as two columns:
  1. the value as a decimal without scale/li>
  2. the scale
This type is not sortable by the database in a meaningful manner.
  • Constructor Details

    • DMoneyType

      public DMoneyType()
      Creates the datatype for DMoney.
  • Method Details

    • getJavaType

      public String getJavaType()
      Description copied from interface: DataType
      Gets the name of the Java type.
      Returns:
      the type
    • isNumeric

      public boolean isNumeric()
      Description copied from interface: DataType
      Returns whether this is a numeric type.
      Specified by:
      isNumeric in interface DataType<DMoney>
      Overrides:
      isNumeric in class AbstractDataType<DMoney>
      Returns:
      true if numeric
    • getColumnCount

      public int getColumnCount(Backend backend)
      Description copied from interface: DataType
      Gets the number of database columns.
      A tentackle type may be mapped to more than one column for multi-column types such as BMoney.
      Specified by:
      getColumnCount in interface DataType<DMoney>
      Overrides:
      getColumnCount in class AbstractDataType<DMoney>
      Parameters:
      backend - the backend, ignored if !DataType.isColumnCountBackendSpecific()
      Returns:
      default is 1
    • getSortableColumns

      public int[] getSortableColumns()
      Description copied from interface: DataType
      Gets the indexes to the sortable columns.
      The number and order of the indexes is reflected in the generated order-by SQL clause.
      Specified by:
      getSortableColumns in interface DataType<DMoney>
      Overrides:
      getSortableColumns in class AbstractDataType<DMoney>
      Returns:
      the column indexes, null or empty if datatype is not sortable in a meaningful manner by the database
    • getCommentSuffix

      public Optional<String> getCommentSuffix(Backend backend, int index)
      Description copied from interface: DataType
      Gets the optional comment suffix.
      If present, it will be appended to the comment.

      Important: for datatypes with more than one column, none or exactly one should be without suffix. See WurbletArgument in tentackle-wurblets.

      Specified by:
      getCommentSuffix in interface DataType<DMoney>
      Overrides:
      getCommentSuffix in class AbstractDataType<DMoney>
      Parameters:
      backend - the backend, ignored if !DataType.isColumnCountBackendSpecific()
      index - the column index
      Returns:
      the optional suffix
    • getSqlType

      public SqlType getSqlType(Backend backend, int index)
      Description copied from interface: DataType
      Gets the SQL type.
      For predefined types, the type must be the same for all backends and the backend argument may be null.
      Application specific types, however, can use different sql types for different backends and for those types the backend argument is always valid.
      Parameters:
      backend - the backend, not used by predefined types
      index - the column index
      Returns:
      the SQL type
    • getSize

      public int getSize(Backend backend, int index, Integer size)
      Description copied from interface: DataType
      Gets the column size.
      Sizes may be differently aligned according to the backend.
      Specified by:
      getSize in interface DataType<DMoney>
      Overrides:
      getSize in class AbstractDataType<DMoney>
      Parameters:
      backend - the backend
      index - the column index
      size - the size from the model
      Returns:
      the column size
    • getScale

      public int getScale(Backend backend, int index, Integer scale)
      Description copied from interface: DataType
      Gets the column scale.
      The scale may be differently aligned according to the backend.
      Specified by:
      getScale in interface DataType<DMoney>
      Overrides:
      getScale in class AbstractDataType<DMoney>
      Parameters:
      backend - the backend
      index - the column index
      scale - the scale from the model
      Returns:
      the column scale
    • getColumnValue

      public Object getColumnValue(Backend backend, int index, DMoney value)
      Description copied from interface: DataType
      Gets the value of a column.
      Specified by:
      getColumnValue in interface DataType<DMoney>
      Overrides:
      getColumnValue in class AbstractDataType<DMoney>
      Parameters:
      backend - the backend, ignored if !DataType.isColumnCountBackendSpecific()
      index - the column index
      value - the datatype's value according to the model
      Returns:
      the column's value
    • getColumnGetter

      public String getColumnGetter(int index, String varName)
      Description copied from interface: DataType
      Returns the java code to get the value of a column.
      Specified by:
      getColumnGetter in interface DataType<DMoney>
      Overrides:
      getColumnGetter in class AbstractDataType<DMoney>
      Parameters:
      index - the column index
      varName - the java variable name
      Returns:
      the java code, empty string if this is a single column type
    • getColumnAlias

      public String getColumnAlias(int index)
      Description copied from interface: DataType
      Gets the alias name of a column.
      Specified by:
      getColumnAlias in interface DataType<DMoney>
      Overrides:
      getColumnAlias in class AbstractDataType<DMoney>
      Parameters:
      index - the column index
      Returns:
      the column's alias
    • valueOf

      public DMoney valueOf(String str)
      Description copied from interface: DataType
      Parses a string and converts to the value of this type.
      The method is used to parse a literal (for example the default value defined in the model).

      Notice: the method doesn't use any locale, so the results are always the same regardless of the JVM's locale.

      Parameters:
      str - the source string
      Returns:
      the value
    • set

      public Object[] set(Backend backend, PreparedStatement statement, int pos, DMoney object, boolean mapNull, Integer size) throws SQLException
      Description copied from interface: DataType
      Sets the object into a prepared statement.
      Must be implemented if DataType.isPredefined() returns false. Not invoked by framework otherwise.
      Parameters:
      backend - the database backend
      statement - the prepared statement
      pos - the position of the first SQL value
      object - the object, may be null
      mapNull - true if map null-values to non-null values
      size - the optional size specified in the model
      Returns:
      the values stored in the prepared statement
      Throws:
      SQLException - if failed
    • set

      public Object set(Backend backend, PreparedStatement statement, int pos, DMoney object, int index, boolean mapNull, Integer size) throws SQLException
      Description copied from interface: DataType
      Sets a column of an object into a prepared statement.
      Must be implemented if DataType.isPredefined() returns false. Not invoked by framework otherwise.
      Specified by:
      set in interface DataType<DMoney>
      Overrides:
      set in class AbstractDataType<DMoney>
      Parameters:
      backend - the database backend
      statement - the prepared statement
      pos - the position of the first SQL value
      object - the object, may be null
      index - the column index
      mapNull - true if map null-values to non-null values
      size - the optional size specified in the model
      Returns:
      the object stored in the prepared statement
      Throws:
      SQLException - if failed
    • get

      public DMoney get(Backend backend, ResultSet resultSet, int[] pos, boolean mapNull, Integer size) throws SQLException
      Description copied from interface: DataType
      Gets the object from a result set.
      Must be implemented if DataType.isPredefined() returns false. Not invoked by framework otherwise.
      Parameters:
      backend - the database backend
      resultSet - the result set
      pos - the column positions in the result set
      mapNull - true if unmap null-values from non-null values
      size - the optional size specified in the model
      Returns:
      the object or null if column(s) IS NULL
      Throws:
      SQLException - if failed