Class IntegerJavaType

java.lang.Object
org.hibernate.type.descriptor.java.AbstractClassJavaType<Integer>
org.hibernate.type.descriptor.java.IntegerJavaType
All Implemented Interfaces:
Serializable, BasicJavaType<Integer>, JavaType<Integer>, PrimitiveJavaType<Integer>, VersionJavaType<Integer>

public class IntegerJavaType extends AbstractClassJavaType<Integer> implements PrimitiveJavaType<Integer>, VersionJavaType<Integer>
Descriptor for Integer handling.
See Also:
  • Field Details

  • Constructor Details

    • IntegerJavaType

      public IntegerJavaType()
  • Method Details

    • useObjectEqualsHashCode

      public boolean useObjectEqualsHashCode()
      Description copied from interface: JavaType
      Whether to use Object.equals(Object) and Object.hashCode() or JavaType.areEqual(Object, Object) and JavaType.extractHashCode(Object) for objects of this java type. This is useful to avoid mega-morphic callsites.
      Specified by:
      useObjectEqualsHashCode in interface JavaType<Integer>
    • toString

      public String toString(Integer value)
      Specified by:
      toString in interface JavaType<Integer>
    • fromString

      public Integer fromString(CharSequence string)
      Specified by:
      fromString in interface BasicJavaType<Integer>
      Specified by:
      fromString in interface JavaType<Integer>
    • isInstance

      public boolean isInstance(Object value)
      Description copied from interface: JavaType
      Is the given value an instance of the described type?

      Usually just getJavaTypeClass().isInstance(value), but some descriptors need specialized semantics, for example, the descriptors for java.sql.Date, java.sql.Time, and java.sql.Timestamp.

      For EntityJavaType, this method handles proxies in a semantically correct way, by checking the entity instance underlying the proxy object.

      Specified by:
      isInstance in interface JavaType<Integer>
    • cast

      public Integer cast(Object value)
      Description copied from interface: JavaType
      Apply a simple type cast to the given value, without attempting any sort of coercion or wrapping. This method is provided as a convenient way to avoid an unchecked cast to a type variable. Use javaType.cast(value) instead of (T) value wherever possible.

      Usually just getJavaTypeClass().cast(value), but overridden in some cases as an "optimization". This optimization is almost certainly unnecessary, and might even indeed be harmful, since Class.cast() is an intrinsic.

      Specified by:
      cast in interface JavaType<Integer>
    • unwrap

      public <X> X unwrap(Integer value, Class<X> type, WrapperOptions options)
      Description copied from interface: JavaType
      Unwrap an instance of our handled Java type into the requested type.

      As an example, if this is a JavaType<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.

      Specified by:
      unwrap in interface JavaType<Integer>
      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

      public <X> Integer wrap(X value, WrapperOptions options)
      Description copied from interface: JavaType
      Wrap a value as our handled Java type.

      Intended use is during ResultSet extraction.

      Specified by:
      wrap in interface JavaType<Integer>
      Type Parameters:
      X - The conversion type.
      Parameters:
      value - The value to wrap.
      options - The options
      Returns:
      The wrapped value.
    • isWider

      public boolean isWider(JavaType<?> javaType)
      Description copied from interface: JavaType
      Determines if this Java type is wider than the given Java type, that is, if the given type can be safely widened to this type.
      Specified by:
      isWider in interface JavaType<Integer>
    • getPrimitiveClass

      public Class<?> getPrimitiveClass()
      Description copied from interface: PrimitiveJavaType
      Retrieve the primitive counterpart to the wrapper type identified by this descriptor
      Specified by:
      getPrimitiveClass in interface PrimitiveJavaType<Integer>
      Returns:
      The primitive Java type.
    • getArrayClass

      public Class<Integer[]> getArrayClass()
      Description copied from interface: PrimitiveJavaType
      Get the Java type that describes an array of this type.
      Specified by:
      getArrayClass in interface PrimitiveJavaType<Integer>
    • getPrimitiveArrayClass

      public Class<?> getPrimitiveArrayClass()
      Description copied from interface: PrimitiveJavaType
      Get the Java type that describes an array of this type's primitive variant.
      Specified by:
      getPrimitiveArrayClass in interface PrimitiveJavaType<Integer>
    • getDefaultValue

      public Integer getDefaultValue()
      Description copied from interface: JavaType
      Get this Java type's default value.
      Specified by:
      getDefaultValue in interface JavaType<Integer>
      Returns:
      The default value.
    • getDefaultSqlLength

      public long getDefaultSqlLength(Dialect dialect, JdbcType jdbcType)
      Description copied from interface: JavaType
      The default column length when this Java type is mapped to a SQL data type which is parametrized by length, for example Types.VARCHAR.
      Specified by:
      getDefaultSqlLength in interface JavaType<Integer>
      Returns:
      Size.DEFAULT_LENGTH unless overridden
    • getDefaultSqlPrecision

      public int getDefaultSqlPrecision(Dialect dialect, JdbcType jdbcType)
      Description copied from interface: JavaType
      The default column precision when this Java type is mapped to a SQL data type which is parametrized by precision, for example Types.DECIMAL.
      Specified by:
      getDefaultSqlPrecision in interface JavaType<Integer>
      Returns:
      Size.DEFAULT_PRECISION unless overridden
    • getDefaultSqlScale

      public int getDefaultSqlScale(Dialect dialect, JdbcType jdbcType)
      Description copied from interface: JavaType
      The default column scale when this Java type is mapped to a SQL data type which is parametrized by scale, for example Types.DECIMAL.
      Specified by:
      getDefaultSqlScale in interface JavaType<Integer>
      Returns:
      Size.DEFAULT_SCALE unless overridden
    • coerce

      public Integer coerce(Object value)
      Description copied from interface: JavaType
      Coerce the given value to this type, if possible.

      This method differs from wrap() in that it allows simple, basic, implicit type conversions, and does not require WrapperOptions. The wrap() method may be thought of as offering explicitly requested type conversions driven by a choice of JdbcType.

      An implementation of this method reports failure in one of two ways, by:

      Therefore, this method is declared to return Object. In case immediate coercion is required, the following idiom may be used:

      javaType.cast(javaType.coerce(value))
      Specified by:
      coerce in interface JavaType<Integer>
      Parameters:
      value - The value to coerce
      Returns:
      The coerced value, or the given value if no coercion was possible
    • seed

      public Integer seed(Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
      Description copied from interface: VersionJavaType
      Generate an initial version.

      Note that this operation is only used when the program sets a null or negative number as the value of the entity version field. It is not called when the program sets the version field to a sensible-looking version.

      Specified by:
      seed in interface VersionJavaType<Integer>
      Parameters:
      length - The length of the type
      precision - The precision of the type
      scale - The scale of the type
      session - The session from which this request originates.
      Returns:
      an instance of the type
    • next

      public Integer next(Integer current, Long length, Integer precision, Integer scale, SharedSessionContractImplementor session)
      Description copied from interface: VersionJavaType
      Increment the version.
      Specified by:
      next in interface VersionJavaType<Integer>
      Parameters:
      current - the current version
      length - The length of the type
      precision - The precision of the type
      scale - The scale of the type
      session - The session from which this request originates.
      Returns:
      an instance of the type