Module org.jooq

Class Convert

java.lang.Object
org.jooq.tools.Convert

public final class Convert extends Object
Utility methods for type conversions

This class provides less type-safety than the general jOOQ API methods. For instance, it accepts arbitrary Converter objects in methods like convert(Collection, Converter) and convert(Object, Class), trying to retrofit the Object argument to the type provided in Converter.fromType() before performing the actual conversion.

Author:
Lukas Eder
  • Field Details

    • TRUE_VALUES

      public static final Set<String> TRUE_VALUES
      All string values that can be transformed into a boolean true value.
    • FALSE_VALUES

      public static final Set<String> FALSE_VALUES
      All string values that can be transformed into a boolean false value.
  • Method Details

    • convert

      public static final Object[] convert(Object[] values, Field<?>[] fields)
      Convert an array of values to a matching data type

      This converts values[i] to fields[i].getType()

    • convert

      public static final Object[] convert(Object[] values, Class<?>[] types)
      Convert an array of values to a matching data type

      This converts values[i] to types[i]

    • convertArray

      public static final <U> U[] convertArray(Object[] from, Converter<?,​? extends U> converter) throws DataTypeException
      Convert an array into another one using a converter

      This uses convertArray(Object[], Class) to convert the array to an array of Converter.fromType() first, before converting that array again to Converter.toType()

      Parameters:
      from - The array to convert
      converter - The data type converter
      Returns:
      A converted array
      Throws:
      DataTypeException - - When the conversion is not possible
    • convertArray

      public static final Object[] convertArray(Object[] from, Class<?> toClass) throws DataTypeException
      Convert an array into another one by these rules

      • If toClass is not an array class, then make it an array class first
      • If toClass is an array class, then create an instance from it, and convert all elements in the from array one by one, using convert(Object, Class)
      Parameters:
      from - The array to convert
      toClass - The target array type
      Returns:
      A converted array
      Throws:
      DataTypeException - - When the conversion is not possible
    • convertCollection

      public static final <U> U[] convertCollection(Collection from, Class<? extends U[]> to)
    • convert

      public static final <U> U convert(Object from, Converter<?,​? extends U> converter) throws DataTypeException
      Convert an object to a type.
      Parameters:
      from - The source object
      converter - The data type converter
      Returns:
      The target type object
      Throws:
      DataTypeException - - When the conversion is not possible
    • convert

      public static final <T> T convert(Object from, Class<? extends T> toClass) throws DataTypeException
      Convert an object to a type. These are the conversion rules:
      • null is always converted to null, or the primitive default value, or Optional.empty(), regardless of the target type.
      • Identity conversion (converting a value to its own type) is always possible.
      • Primitive types can be converted to their wrapper types and vice versa
      • All types can be converted to String
      • All types can be converted to Object
      • All Number types can be converted to other Number types
      • All Number or String types can be converted to Boolean. Possible (case-insensitive) values for true:
        • 1
        • 1.0
        • y
        • yes
        • true
        • on
        • enabled

        Possible (case-insensitive) values for false:

        • 0
        • 0.0
        • n
        • no
        • false
        • off
        • disabled

        All other values evaluate to null

      • All Date subtypes (Date, Time, Timestamp), as well as most Temporal subtypes ( LocalDate, LocalTime, LocalDateTime, OffsetTime, OffsetDateTime, as well as Instant) can be converted into each other.
      • All String types can be converted into URI, URL and File
      • byte[] and ByteBuffer can be converted into one another
      • byte[] can be converted into String, using the platform's default charset
      • Object[] can be converted into any other array type, if array elements can be converted, too
      • All types can be converted into types containing a single argument constructor whose argument is a type that can be converted to according to the above rules.
      • All other combinations that are not listed above will result in a DataTypeException
      Parameters:
      from - The object to convert
      toClass - The target type
      Returns:
      The converted object
      Throws:
      DataTypeException - - When the conversion is not possible
    • convert

      public static final <T> List<T> convert(Collection<?> collection, Class<? extends T> type) throws DataTypeException
      Convert a collection of objects to a list of T, using convert(Object, Class)
      Parameters:
      collection - The list of objects
      type - The target type
      Returns:
      The list of converted objects
      Throws:
      DataTypeException - - When the conversion is not possible
      See Also:
      convert(Object, Class)
    • convert

      public static final <U> List<U> convert(Collection<?> collection, Converter<?,​? extends U> converter) throws DataTypeException
      Convert a collection of objects to a list of T, using convert(Object, Converter)
      Parameters:
      collection - The collection of objects
      converter - The data type converter
      Returns:
      The list of converted objects
      Throws:
      DataTypeException - - When the conversion is not possible
      See Also:
      convert(Object, Converter)