4949import org .hibernate .metamodel .model .domain .BasicDomainType ;
5050import org .hibernate .metamodel .model .domain .EmbeddableDomainType ;
5151import org .hibernate .metamodel .model .domain .EntityDomainType ;
52+ import org .hibernate .metamodel .model .domain .JpaMetamodel ;
5253import org .hibernate .metamodel .model .domain .ManagedDomainType ;
5354import org .hibernate .metamodel .model .domain .NavigableRole ;
5455import org .hibernate .metamodel .model .domain .TupleType ;
5556import org .hibernate .metamodel .model .domain .spi .JpaMetamodelImplementor ;
5657import org .hibernate .metamodel .spi .EntityRepresentationStrategy ;
5758import org .hibernate .metamodel .spi .MappingMetamodelImplementor ;
58- import org .hibernate .metamodel .spi .MetamodelImplementor ;
5959import org .hibernate .metamodel .spi .RuntimeModelCreationContext ;
6060import org .hibernate .persister .collection .CollectionPersister ;
6161import org .hibernate .persister .entity .EntityPersister ;
8080import jakarta .persistence .metamodel .EmbeddableType ;
8181import jakarta .persistence .metamodel .EntityType ;
8282import jakarta .persistence .metamodel .ManagedType ;
83+ import jakarta .persistence .metamodel .Metamodel ;
8384
8485import static org .hibernate .internal .util .collections .ArrayHelper .EMPTY_STRING_ARRAY ;
8586import static org .hibernate .metamodel .internal .JpaMetaModelPopulationSetting .determineJpaMetaModelPopulationSetting ;
9697 * @author Andrea Boriero
9798 */
9899public class MappingMetamodelImpl extends QueryParameterBindingTypeResolverImpl
99- implements MappingMetamodelImplementor , MetamodelImplementor , Serializable {
100+ implements MappingMetamodelImplementor ,JpaMetamodel , Metamodel , Serializable {
100101 // todo : Integrate EntityManagerLogger into CoreMessageLogger
101102 private static final CoreMessageLogger log = CoreLogging .messageLogger ( MappingMetamodelImpl .class );
102103
@@ -348,11 +349,6 @@ private static void registerEntityNameResolvers(
348349 representationStrategy .visitEntityNameResolvers ( entityNameResolvers ::add );
349350 }
350351
351- @ Override @ SuppressWarnings ("deprecation" )
352- public java .util .Collection <EntityNameResolver > getEntityNameResolvers () {
353- return entityNameResolvers ;
354- }
355-
356352 @ Override
357353 public TypeConfiguration getTypeConfiguration () {
358354 return jpaMetamodel .getTypeConfiguration ();
@@ -363,7 +359,6 @@ public MappingMetamodel getMappingMetamodel() {
363359 return this ;
364360 }
365361
366- @ Override
367362 public ServiceRegistry getServiceRegistry () {
368363 return jpaMetamodel .getServiceRegistry ();
369364 }
@@ -547,7 +542,6 @@ public <E extends Enum<E>> E enumValue(EnumJavaType<E> enumType, String enumValu
547542 return jpaMetamodel .enumValue ( enumType , enumValueName );
548543 }
549544
550- @ Override
551545 public String [] getImplementors (String className ) throws MappingException {
552546 // computeIfAbsent() can be a contention point and we expect all the values to be in the map at some point so
553547 // let's do an optimistic check first
@@ -574,38 +568,7 @@ public String[] getImplementors(String className) throws MappingException {
574568 }
575569 }
576570
577- @ Override @ SuppressWarnings ("deprecation" )
578- public Map <String , EntityPersister > entityPersisters () {
579- return entityPersisterMap .convertToMap ();
580- }
581-
582- @ Override @ SuppressWarnings ("deprecation" )
583- public CollectionPersister collectionPersister (String role ) {
584- final CollectionPersister persister = collectionPersisterMap .get ( role );
585- if ( persister == null ) {
586- throw new MappingException ( "Could not locate CollectionPersister for role : " + role );
587- }
588- return persister ;
589- }
590-
591- @ Override @ SuppressWarnings ("deprecation" )
592- public Map <String , CollectionPersister > collectionPersisters () {
593- return collectionPersisterMap ;
594- }
595-
596- @ Override @ SuppressWarnings ("deprecation" )
597- public EntityPersister entityPersister (Class <?> entityClass ) {
598- return getEntityDescriptor ( entityClass .getName () );
599- }
600571
601- @ Override @ SuppressWarnings ("deprecation" )
602- public EntityPersister entityPersister (String entityName ) throws MappingException {
603- final EntityPersister result = entityPersisterMap .get ( entityName );
604- if ( result == null ) {
605- throw new MappingException ( "Unknown entity: " + entityName );
606- }
607- return result ;
608- }
609572
610573 @ Override
611574 public EntityPersister locateEntityPersister (String byName ) {
@@ -656,21 +619,6 @@ public CollectionPersister findCollectionDescriptor(String role) {
656619 return collectionPersisterMap .get ( role );
657620 }
658621
659- @ Override @ SuppressWarnings ("deprecation" )
660- public Set <String > getCollectionRolesByEntityParticipant (String entityName ) {
661- return collectionRolesByEntityParticipant .get ( entityName );
662- }
663-
664- @ Override
665- public String [] getAllEntityNames () {
666- return entityPersisterMap .keys ();
667- }
668-
669- @ Override
670- public String [] getAllCollectionRoles () {
671- return ArrayHelper .toStringArray ( collectionPersisterMap .keySet () );
672- }
673-
674622 @ Override
675623 public <T > void addNamedEntityGraph (String graphName , RootGraphImplementor <T > entityGraph ) {
676624 jpaMetamodel .addNamedEntityGraph ( graphName , entityGraph );
@@ -743,18 +691,18 @@ public List<RootGraph<?>> findRootGraphsForType(EntityPersister baseEntityDescri
743691
744692 private String [] doGetImplementors (Class <?> clazz ) throws MappingException {
745693 final ArrayList <String > results = new ArrayList <>();
746- for ( EntityPersister checkPersister : entityPersisters (). values () ) {
747- final String checkQueryableEntityName = ((EntityMappingType ) checkPersister ).getEntityName ();
694+ forEachEntityDescriptor ( descriptor -> {
695+ final String checkQueryableEntityName = ((EntityMappingType ) descriptor ).getEntityName ();
748696 final boolean isMappedClass = clazz .getName ().equals ( checkQueryableEntityName );
749697 if ( isMappedClass ) {
750698 results .add ( checkQueryableEntityName );
751699 }
752700 else {
753- final Class <?> mappedClass = checkPersister .getMappedClass ();
701+ final Class <?> mappedClass = descriptor .getMappedClass ();
754702 if ( mappedClass != null && clazz .isAssignableFrom ( mappedClass ) ) {
755703 final boolean assignableSuperclass ;
756- if ( checkPersister .isInherited () ) {
757- final String superTypeName = checkPersister .getSuperMappingType ().getEntityName ();
704+ if ( descriptor .isInherited () ) {
705+ final String superTypeName = descriptor .getSuperMappingType ().getEntityName ();
758706 final Class <?> mappedSuperclass = getEntityDescriptor ( superTypeName ).getMappedClass ();
759707 assignableSuperclass = clazz .isAssignableFrom ( mappedSuperclass );
760708 }
@@ -766,8 +714,7 @@ private String[] doGetImplementors(Class<?> clazz) throws MappingException {
766714 }
767715 }
768716 }
769- }
770-
717+ } );
771718 return results .toArray ( EMPTY_STRING_ARRAY );
772719 }
773720
@@ -874,4 +821,30 @@ public <T> BindableType<T> resolveQueryParameterType(Class<T> javaClass) {
874821
875822 return null ;
876823 }
824+
825+ @ Override
826+ public Set <String > getCollectionRolesByEntityParticipant (String entityName ) {
827+ return collectionRolesByEntityParticipant .get ( entityName );
828+
829+ }
830+
831+ @ Override
832+ public java .util .Collection <EntityNameResolver > getEntityNameResolvers () {
833+ return entityNameResolvers ;
834+ }
835+
836+ @ Override
837+ public String [] getAllEntityNames () {
838+ return entityPersisterMap .keys ();
839+ }
840+
841+ @ Override
842+ public String [] getAllCollectionRoles () {
843+ return ArrayHelper .toStringArray ( collectionPersisterMap .keySet () );
844+ }
845+
846+ @ Override
847+ public void close () {
848+ // anything to do ?
849+ }
877850}
0 commit comments