Interface JavaType<T>

    • Method Detail

      • getJavaTypeClass

        default Class<T> getJavaTypeClass()
        Get the Java type (Class) described
        See Also:
        getJavaType()
      • isInstance

        default boolean isInstance​(Object value)
        Is the given value an instance of the described type? Generally this comes down to getJavaTypeClass().isInstance(), though some descriptors (mainly the java.sql.Date, Time and Timestamp descriptors) might need different semantics
      • getMutabilityPlan

        default MutabilityPlan<T> getMutabilityPlan()
        Retrieve the mutability plan for this Java type.
      • getDefaultValue

        default T getDefaultValue()
        Get this Java type's default value.
        Returns:
        The default value.
      • getRecommendedJdbcType

        JdbcType getRecommendedJdbcType​(JdbcTypeDescriptorIndicators context)
        Obtain the "recommended" SQL type descriptor for this Java type. The recommended aspect comes from the JDBC spec (mostly).
        Parameters:
        context - Contextual information
        Returns:
        The recommended SQL type descriptor
      • getDefaultSqlLength

        default long getDefaultSqlLength​(Dialect dialect,
                                         JdbcType jdbcType)
        The default column length when this Java type is mapped to a SQL data type which is parametrized by length, for example Types.VARCHAR.
        Returns:
        Size.DEFAULT_LENGTH unless overridden
      • getDefaultSqlPrecision

        default int getDefaultSqlPrecision​(Dialect dialect,
                                           JdbcType jdbcType)
        The default column precision when this Java type is mapped to a SQL data type which is parametrized by precision, for example Types.DECIMAL.
        Returns:
        Size.DEFAULT_PRECISION unless overridden
      • getDefaultSqlScale

        default int getDefaultSqlScale​(Dialect dialect,
                                       JdbcType jdbcType)
        The default column scale when this Java type is mapped to a SQL data type which is parametrized by scale, for example Types.DECIMAL.
        Returns:
        Size.DEFAULT_SCALE unless overridden
      • getComparator

        default Comparator<T> getComparator()
        Retrieve the natural comparator for this type.
      • extractHashCode

        default int extractHashCode​(T value)
        Extract a proper hash code for this value.
        Parameters:
        value - The value for which to extract a hash code.
        Returns:
        The extracted hash code.
      • areEqual

        default boolean areEqual​(T one,
                                 T another)
        Determine if two instances are equal
        Parameters:
        one - One instance
        another - The other instance
        Returns:
        True if the two are considered equal; false otherwise.
      • extractLoggableRepresentation

        default String extractLoggableRepresentation​(T value)
        Extract a loggable representation of the value.
        Parameters:
        value - The value for which to extract a loggable representation.
        Returns:
        The loggable representation
      • toString

        default String toString​(T value)
      • unwrap

        <X> X unwrap​(T value,
                     Class<X> type,
                     WrapperOptions options)
        Unwrap an instance of our handled Java type into the requested type.

        As an example, if this is a JavaTypeDescriptor<Integer> and we are asked to unwrap the Integer value as a Long we would return something like Long.valueOf( value.longValue() ).

        Intended use is during PreparedStatement binding.

        Type Parameters:
        X - The conversion type.
        Parameters:
        value - The value to unwrap
        type - The type as which to unwrap
        options - The options
        Returns:
        The unwrapped value.
      • wrap

        <X> T wrap​(X value,
                   WrapperOptions options)
        Wrap a value as our handled Java type.

        Intended use is during ResultSet extraction.

        Type Parameters:
        X - The conversion type.
        Parameters:
        value - The value to wrap.
        options - The options
        Returns:
        The wrapped value.
      • isWider

        default boolean isWider​(JavaType<?> javaType)
        Returns whether this java type is wider than the given type i.e. if the given type can be widened to this java type.
      • getCheckCondition

        default String getCheckCondition​(String columnName,
                                         JdbcType sqlType,
                                         Dialect dialect)
        The check constraint that should be added to the column definition in generated DDL.
        Parameters:
        columnName - the name of the column
        sqlType - the JdbcType of the mapped column
        dialect - the SQL Dialect
        Returns:
        a check constraint condition or null