Class StringType

All Implemented Interfaces:
DataType<String>
Direct Known Subclasses:
LargeStringType

@Service(DataType.class) public sealed class StringType extends AbstractDataType<String> permits LargeStringType
Datatype for String.

Notice that there are two types of strings. This one is for the SQL type VARCHAR.

  • Constructor Details

    • StringType

      public StringType()
  • Method Details

    • getJavaType

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

      public boolean isMapNullSupported()
      Description copied from interface: DataType
      Returns whether this type supports mapping null values to some well-defined constant.
      Specified by:
      isMapNullSupported in interface DataType<String>
      Overrides:
      isMapNullSupported in class AbstractDataType<String>
      Returns:
      true if mapNull supported
    • getMappedNullValue

      public Object getMappedNullValue(Backend backend, int index)
      Description copied from interface: DataType
      Gets the mapped non-null value that represents the model's null value.
      The method throws a BackendException, if !DataType.isMapNullSupported().
      Specified by:
      getMappedNullValue in interface DataType<String>
      Overrides:
      getMappedNullValue in class AbstractDataType<String>
      Parameters:
      backend - the backend, null if not backend-specific
      index - the column index
      Returns:
      the non-null mapped value
    • 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
    • valueOf

      public String 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
    • valueOfLiteralToCode

      public String valueOfLiteralToCode(String str, Integer index)
      Description copied from interface: DataType
      Creates the java code to apply the valueOf method to a String.
      Specified by:
      valueOfLiteralToCode in interface DataType<String>
      Overrides:
      valueOfLiteralToCode in class AbstractDataType<String>
      Parameters:
      str - the literal to be parsed
      index - the column index, null if applies to object of this type
      Returns:
      the java code
    • set

      public Object[] set(Backend backend, PreparedStatement statement, int pos, String 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
    • get

      public String 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