24
24
import org .hibernate .collection .spi .AbstractPersistentCollection ;
25
25
import org .hibernate .collection .spi .PersistentArrayHolder ;
26
26
import org .hibernate .collection .spi .PersistentCollection ;
27
- import org .hibernate .engine .spi .CollectionEntry ;
28
27
import org .hibernate .engine .spi .CollectionKey ;
29
- import org .hibernate .engine .spi .EntityEntry ;
30
- import org .hibernate .engine .spi .PersistenceContext ;
31
28
import org .hibernate .engine .spi .SessionFactoryImplementor ;
32
29
import org .hibernate .engine .spi .SharedSessionContractImplementor ;
33
30
import org .hibernate .internal .CoreLogging ;
34
31
import org .hibernate .internal .CoreMessageLogger ;
35
32
import org .hibernate .internal .util .MarkerObject ;
36
33
import org .hibernate .metamodel .CollectionClassification ;
37
- import org .hibernate .metamodel .mapping .PluralAttributeMapping ;
38
34
import org .hibernate .persister .collection .CollectionPersister ;
39
- import org .hibernate .persister .entity .EntityPersister ;
40
35
import org .hibernate .persister .entity .Joinable ;
41
- import org .hibernate .proxy .LazyInitializer ;
42
- import org .hibernate .sql .results .graph .collection .LoadingCollectionEntry ;
43
36
44
37
45
38
import org .checkerframework .checker .nullness .qual .Nullable ;
@@ -88,11 +81,11 @@ public Object indexOf(Object collection, Object element) {
88
81
public boolean contains (Object collection , Object childObject , SharedSessionContractImplementor session ) {
89
82
// we do not have to worry about queued additions to uninitialized
90
83
// collections, since they can only occur for inverse collections!
91
- final Iterator <?> elems = getElementsIterator ( collection );
84
+ final var elems = getElementsIterator ( collection );
92
85
while ( elems .hasNext () ) {
93
86
final Object maybeProxy = elems .next ();
94
87
// worrying about proxies is perhaps a little bit of overkill here...
95
- final LazyInitializer initializer = extractLazyInitializer ( maybeProxy );
88
+ final var initializer = extractLazyInitializer ( maybeProxy );
96
89
final Object element =
97
90
initializer != null && !initializer .isUninitialized ()
98
91
? initializer .getImplementation ()
@@ -176,7 +169,7 @@ public String toLoggableString(Object value, SessionFactoryImplementor factory)
176
169
else {
177
170
if ( !getReturnedClass ().isInstance ( value )
178
171
&& !(value instanceof PersistentCollection ) ) {
179
- final CollectionPersister persister = getPersister ( factory );
172
+ final var persister = getPersister ( factory );
180
173
final Type keyType = persister .getKeyType ();
181
174
final Type identifierType = persister .getIdentifierType ();
182
175
// its most likely the collection-key
@@ -375,7 +368,7 @@ public ForeignKeyDirection getForeignKeyDirection() {
375
368
* @return The collection owner's key
376
369
*/
377
370
public @ Nullable Object getKeyOfOwner (Object owner , SharedSessionContractImplementor session ) {
378
- final EntityEntry entityEntry = session .getPersistenceContextInternal ().getEntry ( owner );
371
+ final var entityEntry = session .getPersistenceContextInternal ().getEntry ( owner );
379
372
if ( entityEntry == null ) {
380
373
// This just handles a particular case of component
381
374
// projection, perhaps get rid of it and throw an exception
@@ -406,9 +399,9 @@ public Object getIdOfOwnerOrNull(Object key, SharedSessionContractImplementor se
406
399
return key ;
407
400
}
408
401
else {
409
- final EntityPersister ownerPersister = getPersister ( session ).getOwnerEntityPersister ();
402
+ final var ownerPersister = getPersister ( session ).getOwnerEntityPersister ();
410
403
// TODO: Fix this so it will work for non-POJO entity mode
411
- final Class <?> keyClass = keyClass ( session );
404
+ final var keyClass = keyClass ( session );
412
405
if ( ownerPersister .getMappedClass ().isAssignableFrom ( keyClass )
413
406
&& keyClass .isInstance ( key ) ) {
414
407
// the key is the owning entity itself, so get the ID from the key
@@ -460,7 +453,7 @@ public boolean isModified(Object old, Object current, boolean[] checkable, Share
460
453
@ Override
461
454
public String getAssociatedEntityName (SessionFactoryImplementor factory )
462
455
throws MappingException {
463
- final CollectionPersister persister = factory .getMappingMetamodel ().getCollectionDescriptor ( role );
456
+ final var persister = factory .getMappingMetamodel ().getCollectionDescriptor ( role );
464
457
if ( persister .getElementType ().isEntityType () ) {
465
458
return persister .getElementPersister ().getEntityName ();
466
459
}
@@ -486,12 +479,12 @@ public Object replaceElements(
486
479
Object owner ,
487
480
Map <Object , Object > copyCache ,
488
481
SharedSessionContractImplementor session ) {
489
- final Collection result = (Collection ) target ;
482
+ final var result = (Collection ) target ;
490
483
result .clear ();
491
484
492
485
// copy elements into newly empty target collection
493
486
final Type elemType = getElementType ( session .getFactory () );
494
- for ( Object element : (Collection ) original ) {
487
+ for ( Object element : (Collection <?> ) original ) {
495
488
result .add ( elemType .replace ( element , null , session , owner , copyCache ) );
496
489
}
497
490
@@ -521,9 +514,9 @@ private void preserveSnapshot(
521
514
Object owner ,
522
515
Map <Object , Object > copyCache ,
523
516
SharedSessionContractImplementor session ) {
524
- final CollectionEntry ce = session .getPersistenceContextInternal ().getCollectionEntry ( result );
525
- if ( ce != null ) {
526
- ce .resetStoredSnapshot ( result ,
517
+ final var collectionEntry = session .getPersistenceContextInternal ().getCollectionEntry ( result );
518
+ if ( collectionEntry != null ) {
519
+ collectionEntry .resetStoredSnapshot ( result ,
527
520
createSnapshot ( original , result , elemType , owner , copyCache , session ) );
528
521
}
529
522
}
@@ -582,8 +575,8 @@ private static <K,V> Serializable createMapSnapshot(
582
575
targetMap = hashMap ;
583
576
snapshot = hashMap ;
584
577
}
585
- final Map <?, ?> resultSnapshot = (Map <?,?>) result .getStoredSnapshot ();
586
- for ( Map . Entry < K , V > entry : map .entrySet () ) {
578
+ final var resultSnapshot = (Map <?,?>) result .getStoredSnapshot ();
579
+ for ( var entry : map .entrySet () ) {
587
580
final K key = entry .getKey ();
588
581
final V value = entry .getValue ();
589
582
final Object resultSnapshotValue = resultSnapshot == null ? null : resultSnapshot .get ( key );
@@ -667,13 +660,13 @@ private Object replaceOriginal(
667
660
target instanceof PersistentCollection <?> collection
668
661
&& !collection .isDirty ();
669
662
if ( target instanceof PersistentCollection <?> oldCollection
670
- && oldCollection .isDirectlyAccessible () ) {
663
+ && oldCollection .isDirectlyAccessible () ) {
671
664
// When a replacement or merge is requested and the underlying collection is directly accessible,
672
665
// use a new persistent collection, to avoid potential issues like the underlying collection being
673
666
// unmodifiable and hence failing the element replacement
674
- final CollectionPersister collectionPersister = getPersister ( session );
667
+ final var collectionPersister = getPersister ( session );
675
668
final Object key = oldCollection .getKey ();
676
- final PersistentCollection <?> newCollection = instantiate ( session , collectionPersister , key );
669
+ final var newCollection = instantiate ( session , collectionPersister , key );
677
670
newCollection .initializeEmptyCollection ( collectionPersister );
678
671
newCollection .setSnapshot ( key , oldCollection .getRole (), oldCollection .getStoredSnapshot () );
679
672
session .getPersistenceContextInternal ()
@@ -709,14 +702,14 @@ private Object replaceUninitializedOriginal(
709
702
Object target ,
710
703
SharedSessionContractImplementor session ,
711
704
Map <Object , Object > copyCache ) {
712
- final PersistentCollection <?> collection = (PersistentCollection <?>) original ;
705
+ final var collection = (PersistentCollection <?>) original ;
713
706
if ( collection .hasQueuedOperations () ) {
714
707
if ( original == target ) {
715
708
// A managed entity with an uninitialized collection is being merged,
716
709
// We need to replace any detached entities in the queued operations
717
710
// with managed copies.
718
- final AbstractPersistentCollection <?> pc = (AbstractPersistentCollection <?>) original ;
719
- pc .replaceQueuedOperationValues ( getPersister ( session ), copyCache );
711
+ final var apc = (AbstractPersistentCollection <?>) original ;
712
+ apc .replaceQueuedOperationValues ( getPersister ( session ), copyCache );
720
713
}
721
714
else {
722
715
// original is a detached copy of the collection;
@@ -740,13 +733,13 @@ else if ( target instanceof Map<?,?> map ) {
740
733
return map ;
741
734
}
742
735
else {
743
- final PersistenceContext persistenceContext = session .getPersistenceContext ();
744
- final PersistentCollection <?> collectionHolder = persistenceContext .getCollectionHolder ( target );
736
+ final var persistenceContext = session .getPersistenceContext ();
737
+ final var collectionHolder = persistenceContext .getCollectionHolder ( target );
745
738
if ( collectionHolder != null ) {
746
739
if ( collectionHolder instanceof PersistentArrayHolder <?> arrayHolder ) {
747
740
persistenceContext .removeCollectionHolder ( target );
748
741
arrayHolder .beginRead ();
749
- final PluralAttributeMapping attributeMapping =
742
+ final var attributeMapping =
750
743
persistenceContext .getCollectionEntry ( collectionHolder )
751
744
.getLoadedPersister ().getAttributeMapping ();
752
745
arrayHolder .injectLoadedState ( attributeMapping , null );
@@ -785,11 +778,11 @@ public String toString() {
785
778
* @return The collection
786
779
*/
787
780
public Object getCollection (Object key , SharedSessionContractImplementor session , Object owner , Boolean overridingEager ) {
788
- final CollectionPersister persister = getPersister ( session );
789
- final PersistenceContext persistenceContext = session .getPersistenceContextInternal ();
790
- final CollectionKey collectionKey = new CollectionKey ( persister , key );
781
+ final var persister = getPersister ( session );
782
+ final var persistenceContext = session .getPersistenceContextInternal ();
783
+ final var collectionKey = new CollectionKey ( persister , key );
791
784
// check if collection is currently being loaded
792
- final LoadingCollectionEntry loadingCollectionEntry =
785
+ final var loadingCollectionEntry =
793
786
persistenceContext .getLoadContexts ().findLoadingCollectionEntry ( collectionKey );
794
787
PersistentCollection <?> collection =
795
788
loadingCollectionEntry == null ? null
@@ -816,8 +809,8 @@ private PersistentCollection<?> createNewWrapper(
816
809
Boolean overridingEager ,
817
810
CollectionPersister persister ,
818
811
SharedSessionContractImplementor session ) {
819
- final PersistenceContext persistenceContext = session .getPersistenceContextInternal ();
820
- final PersistentCollection <?> collection = instantiate ( session , persister , key );
812
+ final var persistenceContext = session .getPersistenceContextInternal ();
813
+ final var collection = instantiate ( session , persister , key );
821
814
collection .setOwner ( owner );
822
815
persistenceContext .addUninitializedCollection ( persister , collection , key );
823
816
// some collections are not lazy:
0 commit comments