Skip to content

Commit 0f80da9

Browse files
committed
fix up some generic typing issues in the JavaTypes
1 parent 97bd036 commit 0f80da9

13 files changed

+67
-51
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/EnumeratedValueConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public EnumeratedValueConverter(
3636

3737
ensureAccessibility( valueField );
3838

39-
final Class<E> enumJavaTypeClass = enumJavaType.getJavaTypeClass();
39+
final var enumJavaTypeClass = enumJavaType.getJavaTypeClass();
4040
final E[] enumConstants = enumJavaTypeClass.getEnumConstants();
4141
relationalToEnumMap = mapOfSize( enumConstants.length );
4242
enumToRelationalMap = mapOfSize( enumConstants.length );

hibernate-core/src/main/java/org/hibernate/boot/model/process/internal/InferredBasicValueResolver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,8 +404,8 @@ private static <E extends Enum<E>> BasicType<E> createEnumeratedValueJdbcMapping
404404
);
405405
}
406406

407-
private static <E extends Enum<E>> Field determineEnumeratedValueField(Class<E> enumJavaTypeClass) {
408-
for ( Field field : enumJavaTypeClass.getDeclaredFields() ) {
407+
private static <E extends Enum<E>> Field determineEnumeratedValueField(Class<? extends E> enumJavaTypeClass) {
408+
for ( var field : enumJavaTypeClass.getDeclaredFields() ) {
409409
if ( field.isAnnotationPresent( EnumeratedValue.class ) ) {
410410
return field;
411411
}

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/AbstractClassJavaType.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public abstract class AbstractClassJavaType<T> implements BasicJavaType<T>, Seri
3434
*
3535
* @see #AbstractClassJavaType(Class, MutabilityPlan)
3636
*/
37-
protected AbstractClassJavaType(Class<? extends T> type) {
37+
protected AbstractClassJavaType(Class<T> type) {
3838
this( type, ImmutableMutabilityPlan.instance() );
3939
}
4040

@@ -44,12 +44,12 @@ protected AbstractClassJavaType(Class<? extends T> type) {
4444
* @param type The Java type.
4545
* @param mutabilityPlan The plan for handling mutability aspects of the java type.
4646
*/
47-
protected AbstractClassJavaType(Class<? extends T> type, MutabilityPlan<? extends T> mutabilityPlan) {
47+
protected AbstractClassJavaType(Class<T> type, MutabilityPlan<T> mutabilityPlan) {
4848
this(
4949
type,
5050
mutabilityPlan,
5151
Comparable.class.isAssignableFrom( type )
52-
? ComparableComparator.instance()
52+
? ComparableComparator.INSTANCE
5353
: null
5454
);
5555
}
@@ -61,14 +61,13 @@ protected AbstractClassJavaType(Class<? extends T> type, MutabilityPlan<? extend
6161
* @param mutabilityPlan The plan for handling mutability aspects of the java type.
6262
* @param comparator The comparator for handling comparison of values
6363
*/
64-
@SuppressWarnings("unchecked")
6564
protected AbstractClassJavaType(
66-
Class<? extends T> type,
67-
MutabilityPlan<? extends T> mutabilityPlan,
68-
Comparator<? extends T> comparator) {
69-
this.type = (Class<T>) type;
70-
this.mutabilityPlan = (MutabilityPlan<T>) mutabilityPlan;
71-
this.comparator = (Comparator<T>) comparator;
65+
Class<T> type,
66+
MutabilityPlan<T> mutabilityPlan,
67+
Comparator<T> comparator) {
68+
this.type = type;
69+
this.mutabilityPlan = mutabilityPlan;
70+
this.comparator = comparator;
7271
}
7372

7473
@Override

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/AbstractTemporalJavaType.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ public abstract class AbstractTemporalJavaType<T>
1717
extends AbstractClassJavaType<T>
1818
implements TemporalJavaType<T> {
1919

20-
protected AbstractTemporalJavaType(Class<? extends T> type) {
20+
protected AbstractTemporalJavaType(Class<T> type) {
2121
super( type );
2222
}
2323

24-
protected AbstractTemporalJavaType(Class<? extends T> type, MutabilityPlan<? extends T> mutabilityPlan) {
24+
protected AbstractTemporalJavaType(Class<T> type, MutabilityPlan<T> mutabilityPlan) {
2525
super( type, mutabilityPlan );
2626
}
2727

2828
public AbstractTemporalJavaType(
29-
Class<? extends T> type,
30-
MutabilityPlan<? extends T> mutabilityPlan,
31-
Comparator<? extends T> comparator) {
29+
Class<T> type,
30+
MutabilityPlan<T> mutabilityPlan,
31+
Comparator<T> comparator) {
3232
super( type, mutabilityPlan, comparator );
3333
}
3434

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ComponentArrayComparator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
*
1212
* @author Christian Beikov
1313
*/
14-
public class ComponentArrayComparator implements Comparator<Object[]> {
14+
public class ComponentArrayComparator<E> implements Comparator<E[]> {
1515

16-
private final JavaType<Object>[] components;
16+
private final JavaType<E>[] components;
1717

18-
public ComponentArrayComparator(JavaType<Object>[] components) {
18+
public ComponentArrayComparator(JavaType<E>[] components) {
1919
this.components = components;
2020
}
2121

2222
@Override
23-
public int compare(Object[] o1, Object[] o2) {
23+
public int compare(E[] o1, E[] o2) {
2424
for ( int i = 0; i < components.length; i++ ) {
2525
final int cmp = components[i].getComparator().compare( o1[i], o2[i] );
2626
if ( cmp != 0 ) {

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcDateJavaType.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,21 @@ public class JdbcDateJavaType extends AbstractTemporalJavaType<Date> {
5252
.toFormatter();
5353

5454
public JdbcDateJavaType() {
55-
super( java.sql.Date.class, DateMutabilityPlan.INSTANCE );
55+
super( Date.class, DateMutabilityPlan.INSTANCE );
5656
}
5757

5858
@Override
5959
public TemporalType getPrecision() {
6060
return TemporalType.DATE;
6161
}
6262

63+
@Override
64+
public Class<Date> getJavaType() {
65+
// wrong, but needed for backward compatibility
66+
//noinspection unchecked, rawtypes
67+
return (Class) java.sql.Date.class;
68+
}
69+
6370
@Override
6471
public boolean isInstance(Object value) {
6572
// this check holds true for java.sql.Date as well
@@ -135,9 +142,9 @@ public Object unwrap(Date value, Class type, WrapperOptions options) {
135142
}
136143

137144
if ( Calendar.class.isAssignableFrom( type ) ) {
138-
final GregorianCalendar cal = new GregorianCalendar();
139-
cal.setTimeInMillis( unwrapDateEpoch( value ) );
140-
return cal;
145+
final var gregorianCalendar = new GregorianCalendar();
146+
gregorianCalendar.setTimeInMillis( unwrapDateEpoch( value ) );
147+
return gregorianCalendar;
141148
}
142149

143150
if ( java.sql.Timestamp.class.isAssignableFrom( type ) ) {

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimeJavaType.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,21 @@ public class JdbcTimeJavaType extends AbstractTemporalJavaType<Date> {
5252

5353

5454
public JdbcTimeJavaType() {
55-
super( Time.class, TimeMutabilityPlan.INSTANCE );
55+
super( Date.class, TimeMutabilityPlan.INSTANCE );
5656
}
5757

5858
@Override
5959
public TemporalType getPrecision() {
6060
return TemporalType.TIME;
6161
}
6262

63+
@Override
64+
public Class<Date> getJavaType() {
65+
// wrong, but needed for backward compatibility
66+
//noinspection unchecked, rawtypes
67+
return (Class) java.sql.Time.class;
68+
}
69+
6370
@Override
6471
public boolean isInstance(Object value) {
6572
// this check holds true for java.sql.Time as well
@@ -69,7 +76,7 @@ public boolean isInstance(Object value) {
6976

7077
@Override
7178
public int extractHashCode(Date value) {
72-
final Calendar calendar = Calendar.getInstance();
79+
final var calendar = Calendar.getInstance();
7380
calendar.setTime( value );
7481
int hashCode = 1;
7582
hashCode = 31 * hashCode + calendar.get( Calendar.HOUR_OF_DAY );
@@ -118,9 +125,9 @@ public Object unwrap(Date value, Class type, WrapperOptions options) {
118125

119126
if ( LocalTime.class.isAssignableFrom( type ) ) {
120127
final Time time = value instanceof java.sql.Time
121-
? ( (java.sql.Time) value )
128+
? (java.sql.Time) value
122129
: new java.sql.Time( value.getTime() % 86_400_000 );
123-
final LocalTime localTime = time.toLocalTime();
130+
final var localTime = time.toLocalTime();
124131
long millis = time.getTime() % 1000;
125132
if ( millis == 0 ) {
126133
return localTime;
@@ -152,9 +159,9 @@ public Object unwrap(Date value, Class type, WrapperOptions options) {
152159
}
153160

154161
if ( Calendar.class.isAssignableFrom( type ) ) {
155-
final GregorianCalendar cal = new GregorianCalendar();
156-
cal.setTimeInMillis( value.getTime() );
157-
return cal;
162+
final var gregorianCalendar = new GregorianCalendar();
163+
gregorianCalendar.setTimeInMillis( value.getTime() );
164+
return gregorianCalendar;
158165
}
159166

160167
if ( java.sql.Timestamp.class.isAssignableFrom( type ) ) {

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,14 @@ public class JdbcTimestampJavaType extends AbstractTemporalJavaType<Date> implem
5555
.withZone( ZoneId.from( ZoneOffset.UTC ) );
5656

5757
public JdbcTimestampJavaType() {
58-
super( Timestamp.class, TimestampMutabilityPlan.INSTANCE );
58+
super( Date.class, TimestampMutabilityPlan.INSTANCE );
59+
}
60+
61+
@Override
62+
public Class<Date> getJavaType() {
63+
// wrong, but needed for backward compatibility
64+
//noinspection unchecked, rawtypes
65+
return (Class) java.sql.Timestamp.class;
5966
}
6067

6168
@Override
@@ -105,7 +112,7 @@ public boolean areEqual(Date one, Date another) {
105112

106113
@Override
107114
public int extractHashCode(Date value) {
108-
return Long.valueOf( value.getTime() / 1000 ).hashCode();
115+
return Long.hashCode( value.getTime() / 1000 );
109116
}
110117

111118
@Override
@@ -136,9 +143,9 @@ public Object unwrap(Date value, Class type, WrapperOptions options) {
136143
}
137144

138145
if ( Calendar.class.isAssignableFrom( type ) ) {
139-
final GregorianCalendar cal = new GregorianCalendar();
140-
cal.setTimeInMillis( value.getTime() );
141-
return cal;
146+
final var gregorianCalendar = new GregorianCalendar();
147+
gregorianCalendar.setTimeInMillis( value.getTime() );
148+
return gregorianCalendar;
142149
}
143150

144151
if ( Long.class.isAssignableFrom( type ) ) {
@@ -147,13 +154,13 @@ public Object unwrap(Date value, Class type, WrapperOptions options) {
147154

148155
if ( java.sql.Date.class.isAssignableFrom( type ) ) {
149156
return value instanceof java.sql.Date
150-
? ( java.sql.Date ) value
157+
? (java.sql.Date) value
151158
: new java.sql.Date( value.getTime() );
152159
}
153160

154161
if ( java.sql.Time.class.isAssignableFrom( type ) ) {
155162
return value instanceof java.sql.Time
156-
? ( java.sql.Time ) value
163+
? (java.sql.Time) value
157164
: new java.sql.Time( value.getTime() % 86_400_000 );
158165
}
159166

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/ObjectArrayJavaType.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ public String toString(Object[] value) {
4242
return sb.toString();
4343
}
4444

45-
private void append(StringBuilder sb, JavaType[] components, Object[] value, int i) {
46-
final Object o = value[i];
47-
if (o == null ) {
48-
sb.append( "null" );
45+
private void append(StringBuilder builder, JavaType[] components, Object[] value, int i) {
46+
final Object element = value[i];
47+
if (element == null ) {
48+
builder.append( "null" );
4949
}
5050
else {
51-
sb.append( components[i].toString( o ) );
51+
builder.append( components[i].toString( element ) );
5252
}
5353
}
5454

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/spi/CollectionJavaType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
public class CollectionJavaType<C> extends AbstractClassJavaType<C> {
3737
private final CollectionSemantics<C,?> semantics;
3838

39-
public CollectionJavaType(Class<? extends C> type, CollectionSemantics<C,?> semantics) {
39+
public CollectionJavaType(Class<C> type, CollectionSemantics<C,?> semantics) {
4040
super( type );
4141
this.semantics = semantics;
4242
}

0 commit comments

Comments
 (0)