4747import org .hibernate .metamodel .model .domain .BasicDomainType ;
4848import org .hibernate .metamodel .model .domain .EmbeddableDomainType ;
4949import org .hibernate .metamodel .model .domain .EntityDomainType ;
50+ import org .hibernate .metamodel .model .domain .JpaMetamodel ;
5051import org .hibernate .metamodel .model .domain .ManagedDomainType ;
5152import org .hibernate .metamodel .model .domain .NavigableRole ;
5253import org .hibernate .metamodel .model .domain .TupleType ;
5354import org .hibernate .metamodel .model .domain .spi .JpaMetamodelImplementor ;
5455import org .hibernate .metamodel .spi .EntityRepresentationStrategy ;
5556import org .hibernate .metamodel .spi .MappingMetamodelImplementor ;
56- import org .hibernate .metamodel .spi .MetamodelImplementor ;
5757import org .hibernate .metamodel .spi .RuntimeModelCreationContext ;
5858import org .hibernate .persister .collection .CollectionPersister ;
5959import org .hibernate .persister .entity .EntityPersister ;
7878import jakarta .persistence .metamodel .EmbeddableType ;
7979import jakarta .persistence .metamodel .EntityType ;
8080import jakarta .persistence .metamodel .ManagedType ;
81+ import jakarta .persistence .metamodel .Metamodel ;
8182
8283import static org .hibernate .internal .util .collections .ArrayHelper .EMPTY_STRING_ARRAY ;
8384import static org .hibernate .metamodel .internal .JpaMetamodelPopulationSetting .determineJpaMetaModelPopulationSetting ;
9495 * @author Andrea Boriero
9596 */
9697public class MappingMetamodelImpl extends QueryParameterBindingTypeResolverImpl
97- implements MappingMetamodelImplementor , MetamodelImplementor , Serializable {
98+ implements MappingMetamodelImplementor ,JpaMetamodel , Metamodel , Serializable {
9899 // todo : Integrate EntityManagerLogger into CoreMessageLogger
99100 private static final CoreMessageLogger log = CoreLogging .messageLogger ( MappingMetamodelImpl .class );
100101
@@ -346,11 +347,6 @@ private static void registerEntityNameResolvers(
346347 representationStrategy .visitEntityNameResolvers ( entityNameResolvers ::add );
347348 }
348349
349- @ Override @ SuppressWarnings ("deprecation" )
350- public java .util .Collection <EntityNameResolver > getEntityNameResolvers () {
351- return entityNameResolvers ;
352- }
353-
354350 @ Override
355351 public TypeConfiguration getTypeConfiguration () {
356352 return jpaMetamodel .getTypeConfiguration ();
@@ -361,7 +357,6 @@ public MappingMetamodel getMappingMetamodel() {
361357 return this ;
362358 }
363359
364- @ Override
365360 public ServiceRegistry getServiceRegistry () {
366361 return jpaMetamodel .getServiceRegistry ();
367362 }
@@ -545,7 +540,6 @@ public <E extends Enum<E>> E enumValue(EnumJavaType<E> enumType, String enumValu
545540 return jpaMetamodel .enumValue ( enumType , enumValueName );
546541 }
547542
548- @ Override
549543 public String [] getImplementors (String className ) throws MappingException {
550544 // computeIfAbsent() can be a contention point and we expect all the values to be in the map at some point so
551545 // let's do an optimistic check first
@@ -572,38 +566,7 @@ public String[] getImplementors(String className) throws MappingException {
572566 }
573567 }
574568
575- @ Override @ SuppressWarnings ("deprecation" )
576- public Map <String , EntityPersister > entityPersisters () {
577- return entityPersisterMap .convertToMap ();
578- }
579-
580- @ Override @ SuppressWarnings ("deprecation" )
581- public CollectionPersister collectionPersister (String role ) {
582- final CollectionPersister persister = collectionPersisterMap .get ( role );
583- if ( persister == null ) {
584- throw new MappingException ( "Could not locate CollectionPersister for role : " + role );
585- }
586- return persister ;
587- }
588-
589- @ Override @ SuppressWarnings ("deprecation" )
590- public Map <String , CollectionPersister > collectionPersisters () {
591- return collectionPersisterMap ;
592- }
593-
594- @ Override @ SuppressWarnings ("deprecation" )
595- public EntityPersister entityPersister (Class <?> entityClass ) {
596- return getEntityDescriptor ( entityClass .getName () );
597- }
598569
599- @ Override @ SuppressWarnings ("deprecation" )
600- public EntityPersister entityPersister (String entityName ) throws MappingException {
601- final EntityPersister result = entityPersisterMap .get ( entityName );
602- if ( result == null ) {
603- throw new MappingException ( "Unknown entity: " + entityName );
604- }
605- return result ;
606- }
607570
608571 @ Override
609572 public EntityPersister locateEntityPersister (String byName ) {
@@ -654,21 +617,6 @@ public CollectionPersister findCollectionDescriptor(String role) {
654617 return collectionPersisterMap .get ( role );
655618 }
656619
657- @ Override @ SuppressWarnings ("deprecation" )
658- public Set <String > getCollectionRolesByEntityParticipant (String entityName ) {
659- return collectionRolesByEntityParticipant .get ( entityName );
660- }
661-
662- @ Override
663- public String [] getAllEntityNames () {
664- return entityPersisterMap .keys ();
665- }
666-
667- @ Override
668- public String [] getAllCollectionRoles () {
669- return ArrayHelper .toStringArray ( collectionPersisterMap .keySet () );
670- }
671-
672620 @ Override
673621 public <T > void addNamedEntityGraph (String graphName , RootGraphImplementor <T > entityGraph ) {
674622 jpaMetamodel .addNamedEntityGraph ( graphName , entityGraph );
@@ -741,18 +689,18 @@ public List<RootGraph<?>> findRootGraphsForType(EntityPersister baseEntityDescri
741689
742690 private String [] doGetImplementors (Class <?> clazz ) throws MappingException {
743691 final ArrayList <String > results = new ArrayList <>();
744- for ( EntityPersister checkPersister : entityPersisters (). values () ) {
745- final String checkQueryableEntityName = ((EntityMappingType ) checkPersister ).getEntityName ();
692+ forEachEntityDescriptor ( descriptor -> {
693+ final String checkQueryableEntityName = ((EntityMappingType ) descriptor ).getEntityName ();
746694 final boolean isMappedClass = clazz .getName ().equals ( checkQueryableEntityName );
747695 if ( isMappedClass ) {
748696 results .add ( checkQueryableEntityName );
749697 }
750698 else {
751- final Class <?> mappedClass = checkPersister .getMappedClass ();
699+ final Class <?> mappedClass = descriptor .getMappedClass ();
752700 if ( mappedClass != null && clazz .isAssignableFrom ( mappedClass ) ) {
753701 final boolean assignableSuperclass ;
754- if ( checkPersister .isInherited () ) {
755- final String superTypeName = checkPersister .getSuperMappingType ().getEntityName ();
702+ if ( descriptor .isInherited () ) {
703+ final String superTypeName = descriptor .getSuperMappingType ().getEntityName ();
756704 final Class <?> mappedSuperclass = getEntityDescriptor ( superTypeName ).getMappedClass ();
757705 assignableSuperclass = clazz .isAssignableFrom ( mappedSuperclass );
758706 }
@@ -764,8 +712,7 @@ private String[] doGetImplementors(Class<?> clazz) throws MappingException {
764712 }
765713 }
766714 }
767- }
768-
715+ } );
769716 return results .toArray ( EMPTY_STRING_ARRAY );
770717 }
771718
@@ -872,4 +819,30 @@ public <T> BindableType<T> resolveQueryParameterType(Class<T> javaClass) {
872819
873820 return null ;
874821 }
822+
823+ @ Override
824+ public Set <String > getCollectionRolesByEntityParticipant (String entityName ) {
825+ return collectionRolesByEntityParticipant .get ( entityName );
826+
827+ }
828+
829+ @ Override
830+ public java .util .Collection <EntityNameResolver > getEntityNameResolvers () {
831+ return entityNameResolvers ;
832+ }
833+
834+ @ Override
835+ public String [] getAllEntityNames () {
836+ return entityPersisterMap .keys ();
837+ }
838+
839+ @ Override
840+ public String [] getAllCollectionRoles () {
841+ return ArrayHelper .toStringArray ( collectionPersisterMap .keySet () );
842+ }
843+
844+ @ Override
845+ public void close () {
846+ // anything to do ?
847+ }
875848}
0 commit comments