Skip to content

Commit 6e13b77

Browse files
gavinkingDan Kristensen
authored andcommitted
superficial code cleanups in initializers
mostly just use of 'var'
1 parent bb9cfb1 commit 6e13b77

27 files changed

+1706
-1724
lines changed

hibernate-core/src/main/java/org/hibernate/collection/spi/InitializerProducerBuilder.java

Lines changed: 52 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,18 @@ public static CollectionInitializerProducer createInitializerProducer(
3333
Fetch indexFetch,
3434
Fetch elementFetch,
3535
DomainResultCreationState creationState) {
36-
switch ( classification ) {
37-
case ARRAY:
38-
return createArrayInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
39-
case BAG:
40-
case ID_BAG:
41-
return createBagInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState );
42-
case LIST:
43-
return createListInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
44-
case MAP:
45-
case ORDERED_MAP:
46-
case SORTED_MAP:
47-
return createMapInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
48-
case SET:
49-
case ORDERED_SET:
50-
case SORTED_SET:
51-
return createSetInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState );
52-
default:
53-
throw new IllegalArgumentException( "Unknown CollectionClassification : " + classification );
54-
}
36+
return switch ( classification ) {
37+
case ARRAY ->
38+
createArrayInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
39+
case BAG, ID_BAG ->
40+
createBagInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState );
41+
case LIST ->
42+
createListInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
43+
case MAP, ORDERED_MAP, SORTED_MAP ->
44+
createMapInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, indexFetch, elementFetch, creationState );
45+
case SET, ORDERED_SET, SORTED_SET ->
46+
createSetInitializerProducer( navigablePath, attributeMapping, fetchParent, selected, elementFetch, creationState );
47+
};
5548
}
5649

5750
public static CollectionInitializerProducer createArrayInitializerProducer(
@@ -219,64 +212,54 @@ public static CollectionInitializerProducer createCollectionTypeWrapperInitializ
219212
Fetch indexFetch,
220213
Fetch elementFetch,
221214
DomainResultCreationState creationState) {
222-
switch ( classification ) {
223-
case ARRAY:
224-
return createArrayInitializerProducer(
225-
navigablePath,
226-
attributeMapping,
227-
fetchParent,
228-
selected,
229-
indexFetch,
230-
elementFetch,
231-
creationState
232-
);
233-
case BAG:
234-
case ID_BAG:
215+
return switch ( classification ) {
216+
case ARRAY -> createArrayInitializerProducer(
217+
navigablePath,
218+
attributeMapping,
219+
fetchParent,
220+
selected,
221+
indexFetch,
222+
elementFetch,
223+
creationState
224+
);
225+
case BAG, ID_BAG -> {
235226
assert indexFetch == null;
236-
return createBagInitializerProducer(
237-
navigablePath,
238-
attributeMapping,
239-
fetchParent,
240-
selected,
241-
elementFetch,
242-
creationState
243-
);
244-
case LIST:
245-
return createListInitializerProducer(
246-
navigablePath,
247-
attributeMapping,
248-
fetchParent,
249-
selected,
250-
indexFetch,
251-
elementFetch,
252-
creationState
253-
);
254-
case MAP:
255-
case ORDERED_MAP:
256-
case SORTED_MAP:
257-
return createMapInitializerProducer(
258-
navigablePath,
259-
attributeMapping,
260-
fetchParent,
261-
selected,
262-
indexFetch,
263-
elementFetch,
264-
creationState
265-
);
266-
case SET:
267-
case ORDERED_SET:
268-
case SORTED_SET:
269-
return createSetInitializerProducer(
227+
yield createBagInitializerProducer(
270228
navigablePath,
271229
attributeMapping,
272230
fetchParent,
273231
selected,
274232
elementFetch,
275233
creationState
276234
);
277-
default:
278-
throw new IllegalArgumentException( "Unknown CollectionClassification : " + classification );
279-
}
235+
}
236+
case LIST -> createListInitializerProducer(
237+
navigablePath,
238+
attributeMapping,
239+
fetchParent,
240+
selected,
241+
indexFetch,
242+
elementFetch,
243+
creationState
244+
);
245+
case MAP, ORDERED_MAP, SORTED_MAP -> createMapInitializerProducer(
246+
navigablePath,
247+
attributeMapping,
248+
fetchParent,
249+
selected,
250+
indexFetch,
251+
elementFetch,
252+
creationState
253+
);
254+
case SET, ORDERED_SET, SORTED_SET -> createSetInitializerProducer(
255+
navigablePath,
256+
attributeMapping,
257+
fetchParent,
258+
selected,
259+
elementFetch,
260+
creationState
261+
);
262+
};
280263
}
281264

282265
private InitializerProducerBuilder() {

hibernate-core/src/main/java/org/hibernate/metamodel/internal/PluralAttributeMetadataImpl.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,29 +45,25 @@ class PluralAttributeMetadataImpl<X, Y, E>
4545
this.elementClassification = elementClassification;
4646
this.listIndexOrMapKeyClassification = listIndexOrMapKeyClassification;
4747

48-
final ParameterizedType signatureType = AttributeFactory.getSignatureType( member );
48+
final var signatureType = AttributeFactory.getSignatureType( member );
4949
switch ( collectionClassification ) {
5050
case MAP:
5151
case SORTED_MAP:
5252
case ORDERED_MAP: {
5353
keyJavaType = signatureType != null
5454
? getClassFromGenericArgument( signatureType.getActualTypeArguments()[0] )
5555
: Object.class;
56-
5756
elementJavaType = signatureType != null
5857
? getClassFromGenericArgument( signatureType.getActualTypeArguments()[1] )
5958
: Object.class;
60-
6159
break;
6260
}
6361
case ARRAY:
6462
case LIST: {
6563
keyJavaType = Integer.class;
66-
6764
elementJavaType = signatureType != null
6865
? getClassFromGenericArgument( signatureType.getActualTypeArguments()[0] )
6966
: Object.class;
70-
7167
break;
7268
}
7369
default: {
@@ -130,14 +126,11 @@ public AttributeMetadata<X,Y> getAttributeMetadata() {
130126
}
131127

132128
private static ValueClassification toValueClassification(AttributeClassification classification) {
133-
switch ( classification ) {
134-
case EMBEDDED:
135-
return ValueClassification.EMBEDDABLE;
136-
case BASIC:
137-
return ValueClassification.BASIC;
138-
default:
139-
return ValueClassification.ENTITY;
140-
}
129+
return switch ( classification ) {
130+
case EMBEDDED -> ValueClassification.EMBEDDABLE;
131+
case BASIC -> ValueClassification.BASIC;
132+
default -> ValueClassification.ENTITY;
133+
};
141134
}
142135

143136
private Class<?> getClassFromGenericArgument(java.lang.reflect.Type type) {
@@ -165,7 +158,7 @@ else if ( type instanceof WildcardType wildcardType ) {
165158
}
166159

167160
public static CollectionClassification determineCollectionType(Class<?> javaType, Property property) {
168-
final Collection collection = (Collection) property.getValue();
161+
final var collection = (Collection) property.getValue();
169162

170163
if ( java.util.List.class.isAssignableFrom( javaType ) ) {
171164
return CollectionClassification.LIST;

hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPersister.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,7 @@ default String[] getSynchronizedQuerySpaces() {
316316
}
317317

318318
default void visitQuerySpaces(Consumer<String> querySpaceConsumer) {
319-
final String[] spaces = getSynchronizedQuerySpaces();
320-
for (String space : spaces) {
319+
for ( String space : getSynchronizedQuerySpaces() ) {
321320
querySpaceConsumer.accept(space);
322321
}
323322
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/DomainResultAssembler.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,17 @@ default void resolveState(RowProcessingState rowProcessingState) {
5050
* {@link Initializer#isResultInitializer()}.
5151
*/
5252
default <X> void forEachResultAssembler(BiConsumer<Initializer<?>, X> consumer, X arg) {
53+
}
54+
55+
default boolean isEager() {
56+
final var initializer = getInitializer();
57+
return initializer != null && initializer.isEager();
58+
}
5359

60+
default boolean hasLazySubInitializers() {
61+
final var initializer = getInitializer();
62+
return initializer != null
63+
&& ( !initializer.isEager() || initializer.hasLazySubInitializers() );
5464
}
5565

5666
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/collection/internal/AbstractCollectionInitializer.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.hibernate.collection.spi.PersistentCollection;
1010
import org.hibernate.engine.spi.CollectionKey;
1111
import org.hibernate.metamodel.mapping.PluralAttributeMapping;
12-
import org.hibernate.persister.collection.CollectionPersister;
1312
import org.hibernate.spi.NavigablePath;
1413
import org.hibernate.sql.results.graph.AssemblerCreationState;
1514
import org.hibernate.sql.results.graph.DomainResult;
@@ -150,8 +149,8 @@ protected void setMissing(Data data) {
150149
}
151150

152151
protected void resolveCollectionKey(Data data, boolean checkPreviousRow) {
153-
final CollectionKey oldKey = data.collectionKey;
154-
final PersistentCollection<?> oldCollectionInstance = data.getCollectionInstance();
152+
final var oldKey = data.collectionKey;
153+
final var oldCollectionInstance = data.getCollectionInstance();
155154
data.collectionKey = null;
156155
data.setCollectionInstance( null );
157156

@@ -170,7 +169,7 @@ protected void resolveCollectionKey(Data data, boolean checkPreviousRow) {
170169
return;
171170
}
172171
}
173-
final CollectionPersister persister = collectionAttributeMapping.getCollectionDescriptor();
172+
final var persister = collectionAttributeMapping.getCollectionDescriptor();
174173
// Try to reuse the previous collection key and collection if possible
175174
if ( checkPreviousRow && oldKey != null && areKeysEqual( oldKey.getKey(), data.collectionKeyValue ) ) {
176175
data.collectionKey = oldKey;
@@ -187,10 +186,17 @@ private boolean areKeysEqual(Object key1, Object key2) {
187186
return keyTypeForEqualsHashCode == null ? key1.equals( key2 ) : keyTypeForEqualsHashCode.isEqual( key1, key2 );
188187
}
189188

189+
PersistentCollection<?> getCollection(CollectionInitializerData data, Object instance) {
190+
return collectionAttributeMapping.getCollectionDescriptor().isArray()
191+
? data.getRowProcessingState().getSession().getPersistenceContextInternal()
192+
.getCollectionHolder( instance )
193+
: (PersistentCollection<?>) instance;
194+
}
195+
190196
@Override
191197
protected void forEachSubInitializer(BiConsumer<Initializer<?>, RowProcessingState> consumer, InitializerData data) {
192198
if ( collectionKeyResultAssembler != null ) {
193-
final Initializer<?> initializer = collectionKeyResultAssembler.getInitializer();
199+
final var initializer = collectionKeyResultAssembler.getInitializer();
194200
if ( initializer != null ) {
195201
consumer.accept( initializer, data.getRowProcessingState() );
196202
}
@@ -199,8 +205,9 @@ protected void forEachSubInitializer(BiConsumer<Initializer<?>, RowProcessingSta
199205

200206
@Override
201207
public @Nullable PersistentCollection<?> getCollectionInstance(Data data) {
202-
return data.getState() == State.UNINITIALIZED || data.getState() == State.MISSING ? null :
203-
data.getCollectionInstance();
208+
return data.getState() == State.UNINITIALIZED || data.getState() == State.MISSING
209+
? null
210+
: data.getCollectionInstance();
204211
}
205212

206213
@Override

0 commit comments

Comments
 (0)