This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit c87c957ff7d42f479e7c831d4435f37473f508b6 Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Fri Jan 30 11:59:44 2026 -0600 @NonNull --- .../orm/hibernate/cfg/GrailsDomainBinder.java | 74 ++++++++++------------ .../hibernate/cfg/domainbinding/ClassBinder.java | 4 +- .../cfg/domainbinding/ComponentBinder.java | 4 +- .../cfg/domainbinding/ComponentPropertyBinder.java | 6 +- .../cfg/domainbinding/CompositeIdBinder.java | 10 +-- .../cfg/domainbinding/IdentityBinder.java | 6 +- .../cfg/domainbinding/NamespaceNameExtractor.java | 11 ++-- .../collectionType/BagCollectionType.java | 4 +- .../collectionType/CollectionType.java | 9 ++- .../collectionType/ListCollectionType.java | 4 +- .../collectionType/MapCollectionType.java | 4 +- .../collectionType/SetCollectionType.java | 4 +- .../collectionType/SortedSetCollectionType.java | 4 +- .../NamespaceNameExtractorSpec.groovy | 16 ----- 14 files changed, 78 insertions(+), 82 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index 87570d1701..aa2d3460ce 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -97,6 +97,8 @@ import java.util.Set; import java.util.Optional; import java.util.StringTokenizer; +import jakarta.annotation.Nonnull; + import static java.util.Optional.ofNullable; import static org.hibernate.boot.model.naming.Identifier.toIdentifier; @@ -252,7 +254,7 @@ public class GrailsDomainBinder NAMING_STRATEGY_PROVIDER.configureNamingStrategy(datasourceName, strategy); } - private void bindMapSecondPass(ToMany property, InFlightMetadataCollector mappings, + private void bindMapSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Map<?, ?> persistentClasses, org.hibernate.mapping.Map map, String sessionFactoryBeanName) { bindCollectionSecondPass(property, mappings, persistentClasses, map, sessionFactoryBeanName); @@ -321,7 +323,7 @@ public class GrailsDomainBinder * @param list * @param sessionFactoryBeanName */ - private void bindListSecondPass(ToMany property, InFlightMetadataCollector mappings, + private void bindListSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Map<?, ?> persistentClasses, org.hibernate.mapping.List list, String sessionFactoryBeanName) { bindCollectionSecondPass(property, mappings, persistentClasses, list, sessionFactoryBeanName); @@ -399,7 +401,7 @@ public class GrailsDomainBinder } } - private void bindCollectionSecondPass(ToMany property, InFlightMetadataCollector mappings, + private void bindCollectionSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Map<?, ?> persistentClasses, Collection collection, String sessionFactoryBeanName) { PersistentClass associatedClass = null; @@ -694,7 +696,7 @@ public class GrailsDomainBinder } private void bindCollectionWithJoinTable(ToMany property, - InFlightMetadataCollector mappings, Collection collection, PropertyConfig config, String sessionFactoryBeanName) { + @Nonnull InFlightMetadataCollector mappings, Collection collection, PropertyConfig config, String sessionFactoryBeanName) { // PhysicalNamingStrategy namingStrategy = getPhysicalNamingStrategy(sessionFactoryBeanName); @@ -816,7 +818,7 @@ public class GrailsDomainBinder * @param sessionFactoryBeanName The name of the session factory */ private void bindDependentKeyValue(PersistentProperty property, DependantValue key, - InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { if (LOG.isDebugEnabled()) { LOG.debug("[GrailsDomainBinder] binding [" + property.getName() + "] with dependant key"); @@ -848,7 +850,7 @@ public class GrailsDomainBinder * @param persistentClasses * @return The DependantValue (key) */ - private DependantValue createPrimaryKeyValue(InFlightMetadataCollector mappings, PersistentProperty property, + private DependantValue createPrimaryKeyValue(@Nonnull InFlightMetadataCollector mappings, PersistentProperty property, Collection collection, Map<?, ?> persistentClasses) { KeyValue keyValue; DependantValue key; @@ -881,7 +883,7 @@ public class GrailsDomainBinder * @param mappings * @param collection */ - private void bindUnidirectionalOneToMany(org.grails.datastore.mapping.model.types.OneToMany property, InFlightMetadataCollector mappings, Collection collection) { + private void bindUnidirectionalOneToMany(org.grails.datastore.mapping.model.types.OneToMany property, @Nonnull InFlightMetadataCollector mappings, Collection collection) { Value v = collection.getElement(); v.createForeignKey(); String entityName; @@ -952,7 +954,7 @@ public class GrailsDomainBinder * @param mappings The mappings */ private void bindManyToMany(Association property, ManyToOne element, - InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { new ManyToOneBinder(namingStrategy).bindManyToOne(property, element, EMPTY_PATH); element.setReferencedEntityName(property.getOwner().getName()); } @@ -979,7 +981,7 @@ public class GrailsDomainBinder * @param path */ public void bindCollection(ToMany property, Collection collection, - PersistentClass owner, InFlightMetadataCollector mappings, String path, String sessionFactoryBeanName) { + PersistentClass owner, @Nonnull InFlightMetadataCollector mappings, String path, String sessionFactoryBeanName) { // set role String propertyName = getNameForPropertyAndPath(property, path); @@ -1052,7 +1054,7 @@ public class GrailsDomainBinder return property.getName(); } - private void bindCollectionTable(ToMany property, InFlightMetadataCollector mappings, + private void bindCollectionTable(ToMany property, @Nonnull InFlightMetadataCollector mappings, Collection collection, Table ownerTable, String sessionFactoryBeanName) { String owningTableSchema = ownerTable.getSchema(); @@ -1091,7 +1093,7 @@ public class GrailsDomainBinder * @param sessionFactoryBeanName the session factory bean name * @throws MappingException Thrown if the domain class uses inheritance which is not supported */ - public void bindClass(PersistentEntity entity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) + public void bindClass(@Nonnull PersistentEntity entity, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { //if (domainClass.getClazz().getSuperclass() == Object.class) { if (entity.isRoot()) { @@ -1110,7 +1112,7 @@ public class GrailsDomainBinder * @param mappings The Hibernate Mappings object * @param sessionFactoryBeanName the session factory bean name */ - protected void bindRoot(GrailsHibernatePersistentEntity entity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + protected void bindRoot(@Nonnull GrailsHibernatePersistentEntity entity,@Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { if (mappings.getEntityBinding(entity.getName()) != null) { LOG.info("[GrailsDomainBinder] Class [" + entity.getName() + "] is already mapped, skipping.. "); return; @@ -1127,10 +1129,7 @@ public class GrailsDomainBinder root.setPolymorphic(false); } else { root.setPolymorphic(true); - Mapping m = null; - if (entity != null) { - m = entity.getMappedForm(); - } + Mapping m = entity.getMappedForm(); final Mapping finalMapping = m; boolean tablePerSubclass = !m.getTablePerHierarchy(); if (!tablePerSubclass) { @@ -1164,8 +1163,8 @@ public class GrailsDomainBinder * @param sessionFactoryBeanName the session factory bean name */ private void addMultiTenantFilterIfNecessary( - GrailsHibernatePersistentEntity entity, PersistentClass persistentClass, - InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + @Nonnull GrailsHibernatePersistentEntity entity, PersistentClass persistentClass, + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { if (entity.isMultiTenant()) { TenantId tenantId = entity.getTenantId(); @@ -1206,9 +1205,9 @@ public class GrailsDomainBinder * @param sessionFactoryBeanName the session factory bean name * @param mappingCacheHolder */ - private void bindSubClass(GrailsHibernatePersistentEntity sub, + private void bindSubClass(@Nonnull GrailsHibernatePersistentEntity sub, PersistentClass parent, - InFlightMetadataCollector mappings, + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName , Mapping m, MappingCacheHolder mappingCacheHolder) { mappingCacheHolder.cacheMapping(sub); @@ -1379,7 +1378,7 @@ public class GrailsDomainBinder * @param subClass The Hibernate SubClass instance * @param mappings The mappings instance */ - private void bindSubClass(GrailsHibernatePersistentEntity sub, Subclass subClass, InFlightMetadataCollector mappings, + private void bindSubClass(@Nonnull GrailsHibernatePersistentEntity sub, Subclass subClass, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { classBinding.bindClass(sub, subClass, mappings); @@ -1451,14 +1450,11 @@ public class GrailsDomainBinder /* * Binds a persistent classes to the table representation and binds the class properties */ - private void bindRootPersistentClassCommonValues(GrailsHibernatePersistentEntity domainClass, - RootClass root, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + private void bindRootPersistentClassCommonValues(@Nonnull GrailsHibernatePersistentEntity domainClass, + RootClass root, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { // get the schema and catalog names from the configuration - Mapping gormMapping = null; - if (domainClass != null) { - gormMapping = domainClass.getMappedForm(); - } + Mapping gormMapping = domainClass.getMappedForm(); configureDerivedProperties(domainClass, gormMapping); CacheConfig cc = gormMapping.getCache(); @@ -1506,9 +1502,9 @@ public class GrailsDomainBinder public void bindIdentity( - GrailsHibernatePersistentEntity domainClass, + @Nonnull GrailsHibernatePersistentEntity domainClass, RootClass root, - InFlightMetadataCollector mappings, + @Nonnull InFlightMetadataCollector mappings, Mapping gormMapping, String sessionFactoryBeanName) { @@ -1526,14 +1522,10 @@ public class GrailsDomainBinder * @param mappings The Hibernate Mappings instance * @param sessionFactoryBeanName the session factory bean name */ - private void createClassProperties(GrailsHibernatePersistentEntity domainClass, PersistentClass persistentClass, - InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + private void createClassProperties(@Nonnull GrailsHibernatePersistentEntity domainClass, PersistentClass persistentClass, + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { - Mapping result = null; - if (domainClass != null) { - result = domainClass.getMappedForm(); - } - Mapping gormMapping = result; + Mapping gormMapping = domainClass.getMappedForm(); Table table = persistentClass.getTable(); table.setComment(gormMapping.getComment()); final List<PersistentProperty> persistentProperties = domainClass.getPersistentProperties() @@ -1656,7 +1648,7 @@ public class GrailsDomainBinder - private void bindOneToMany(org.grails.datastore.mapping.model.types.OneToMany currentGrailsProp, OneToMany one, InFlightMetadataCollector mappings) { + private void bindOneToMany(org.grails.datastore.mapping.model.types.OneToMany currentGrailsProp, OneToMany one, @Nonnull InFlightMetadataCollector mappings) { one.setReferencedEntityName(currentGrailsProp.getAssociatedEntity().getName()); one.setIgnoreNotFound(true); } @@ -1769,11 +1761,11 @@ public class GrailsDomainBinder private static final long serialVersionUID = -5540526942092611348L; ToMany property; - InFlightMetadataCollector mappings; + @Nonnull InFlightMetadataCollector mappings; Collection collection; String sessionFactoryBeanName; - public GrailsCollectionSecondPass(ToMany property, InFlightMetadataCollector mappings, + public GrailsCollectionSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { this.property = property; this.mappings = mappings; @@ -1824,7 +1816,7 @@ public class GrailsDomainBinder class ListSecondPass extends GrailsCollectionSecondPass { private static final long serialVersionUID = -3024674993774205193L; - public ListSecondPass(ToMany property, InFlightMetadataCollector mappings, + public ListSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { super(property, mappings, coll, sessionFactoryBeanName); } @@ -1846,7 +1838,7 @@ public class GrailsDomainBinder class MapSecondPass extends GrailsCollectionSecondPass { private static final long serialVersionUID = -3244991685626409031L; - public MapSecondPass(ToMany property, InFlightMetadataCollector mappings, + public MapSecondPass(ToMany property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { super(property, mappings, coll, sessionFactoryBeanName); } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinder.java index 3629b1d20e..4832b45ac7 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinder.java @@ -5,6 +5,8 @@ import org.grails.orm.hibernate.cfg.Mapping; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import static org.grails.orm.hibernate.cfg.GrailsHibernateUtil.unqualify; public class ClassBinder { @@ -17,7 +19,7 @@ public class ClassBinder { * @param persistentClass The persistant class * @param collector Existing collector */ - public void bindClass(PersistentEntity persistentEntity, PersistentClass persistentClass, InFlightMetadataCollector collector) { + public void bindClass(@Nonnull PersistentEntity persistentEntity, PersistentClass persistentClass, @Nonnull InFlightMetadataCollector collector) { persistentClass.setLazy(true); var entityName = persistentEntity.getName(); persistentClass.setEntityName(entityName); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinder.java index 2ec1425445..7bcc7196b9 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinder.java @@ -14,6 +14,8 @@ import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.GrailsHibernateUtil; import org.grails.orm.hibernate.cfg.MappingCacheHolder; +import jakarta.annotation.Nonnull; + public class ComponentBinder { private final MappingCacheHolder mappingCacheHolder; @@ -30,7 +32,7 @@ public class ComponentBinder { } public void bindComponent(Component component, Embedded property, - boolean isNullable, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + boolean isNullable, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { Class<?> type = property.getType(); String role = GrailsHibernateUtil.qualify(type.getName(), property.getName()); component.setRoleName(role); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java index 6fb1bbf121..c7c752c3d5 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java @@ -36,6 +36,8 @@ import org.grails.orm.hibernate.cfg.PropertyConfig; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolder; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionType; +import jakarta.annotation.Nonnull; + import static org.grails.orm.hibernate.cfg.GrailsDomainBinder.EMPTY_PATH; public class ComponentPropertyBinder { @@ -92,7 +94,7 @@ public class ComponentPropertyBinder { public void bindComponentProperty(Component component, PersistentProperty componentProperty, PersistentProperty currentGrailsProp, PersistentClass persistentClass, - String path, Table table, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + String path, Table table, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { Value value; // see if it's a collection type CollectionType collectionType = collectionHolder.get(currentGrailsProp.getType()); @@ -157,7 +159,7 @@ public class ComponentPropertyBinder { } public void bindComponent(Component component, Embedded property, - boolean isNullable, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + boolean isNullable, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { componentBinder.bindComponent(component, property, isNullable, mappings, sessionFactoryBeanName); } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdBinder.java index d6ca8d9bee..7fbbf0fdae 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdBinder.java @@ -12,6 +12,8 @@ import org.grails.orm.hibernate.cfg.CompositeIdentity; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.GrailsHibernateUtil; +import jakarta.annotation.Nonnull; + public class CompositeIdBinder { private final MetadataBuildingContext metadataBuildingContext; @@ -27,13 +29,13 @@ public class CompositeIdBinder { this.componentPropertyBinder = null; } - public void bindCompositeId(PersistentEntity domainClass, RootClass root, - CompositeIdentity compositeIdentity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + public void bindCompositeId(@Nonnull PersistentEntity domainClass, RootClass root, + CompositeIdentity compositeIdentity, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { bindCompositeId(domainClass, (GrailsHibernatePersistentEntity) domainClass, root, compositeIdentity, mappings, sessionFactoryBeanName); } - public void bindCompositeId(PersistentEntity domainClass, GrailsHibernatePersistentEntity hibernatePersistentEntity, RootClass root, - CompositeIdentity compositeIdentity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + public void bindCompositeId(@Nonnull PersistentEntity domainClass, @Nonnull GrailsHibernatePersistentEntity hibernatePersistentEntity, RootClass root, + CompositeIdentity compositeIdentity, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { Component id = new Component(metadataBuildingContext, root); id.setNullValue("undefined"); root.setIdentifier(id); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinder.java index 8afcb74cf3..5c6e7dfb89 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinder.java @@ -14,6 +14,8 @@ import org.grails.orm.hibernate.cfg.Identity; import org.grails.orm.hibernate.cfg.Mapping; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; +import jakarta.annotation.Nonnull; + public class IdentityBinder { private final SimpleIdBinder simpleIdBinder; @@ -37,9 +39,9 @@ public class IdentityBinder { } public void bindIdentity( - GrailsHibernatePersistentEntity domainClass, + @Nonnull GrailsHibernatePersistentEntity domainClass, RootClass root, - InFlightMetadataCollector mappings, + @Nonnull InFlightMetadataCollector mappings, Mapping gormMapping, String sessionFactoryBeanName) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractor.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractor.java index cfa86d2487..68137f5a25 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractor.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractor.java @@ -5,17 +5,19 @@ import org.hibernate.boot.model.relational.Database; import org.hibernate.boot.model.relational.Namespace; import org.hibernate.boot.spi.InFlightMetadataCollector; +import jakarta.annotation.Nonnull; + import java.util.Optional; import java.util.function.Function; public class NamespaceNameExtractor { - public String getCatalogName(InFlightMetadataCollector mappings) { + public String getCatalogName(@Nonnull InFlightMetadataCollector mappings) { return getNamespaceName(mappings, Namespace.Name::getCatalog); } - public String getSchemaName(InFlightMetadataCollector mappings) { + public String getSchemaName(@Nonnull InFlightMetadataCollector mappings) { return getNamespaceName(mappings, Namespace.Name::getSchema); } @@ -23,10 +25,9 @@ public class NamespaceNameExtractor { public String getNamespaceName( - InFlightMetadataCollector mappings, Function<Namespace.Name, Identifier> function + @Nonnull InFlightMetadataCollector mappings, Function<Namespace.Name, Identifier> function ) { - return Optional.ofNullable(mappings) - .map(InFlightMetadataCollector::getDatabase) + return Optional.ofNullable(mappings.getDatabase()) .map(Database::getDefaultNamespace) .map(Namespace::getName) .map(function) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/BagCollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/BagCollectionType.java index c21807a38b..b72d23fcbb 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/BagCollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/BagCollectionType.java @@ -6,6 +6,8 @@ import org.hibernate.mapping.Bag; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; @@ -17,7 +19,7 @@ public class BagCollectionType extends CollectionType { @Override public Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { Bag coll = new Bag(buildingContext, owner); coll.setCollectionTable(owner.getTable()); coll.setTypeName(getTypeName(property)); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionType.java index af3b360d6f..cf85d45193 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionType.java @@ -13,6 +13,8 @@ import org.hibernate.mapping.Bag; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; @@ -35,7 +37,7 @@ public abstract class CollectionType { private final Map<Class<?>, CollectionType> INSTANCES = new HashMap<>(); public abstract Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException; + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException; protected CollectionType(Class<?> clazz, GrailsDomainBinder binder) { this.clazz = clazz; @@ -71,11 +73,8 @@ public abstract class CollectionType { } public String getTypeName(ToMany property) { - Mapping mapping = null; GrailsHibernatePersistentEntity domainClass = (GrailsHibernatePersistentEntity) property.getOwner(); - if (domainClass != null) { - mapping = domainClass.getMappedForm(); - } + Mapping mapping = domainClass.getMappedForm(); return new TypeNameProvider().getTypeName(property, mapping); } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/ListCollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/ListCollectionType.java index 68fd9e0baf..264765a48a 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/ListCollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/ListCollectionType.java @@ -7,6 +7,8 @@ import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; @@ -18,7 +20,7 @@ public class ListCollectionType extends CollectionType { @Override public Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { org.hibernate.mapping.List coll = new org.hibernate.mapping.List(buildingContext, owner); coll.setCollectionTable(owner.getTable()); coll.setTypeName(getTypeName(property)); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/MapCollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/MapCollectionType.java index 22de22b5c9..cf98800c3b 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/MapCollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/MapCollectionType.java @@ -7,6 +7,8 @@ import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; @@ -18,7 +20,7 @@ public class MapCollectionType extends CollectionType { @Override public Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { org.hibernate.mapping.Map map = new org.hibernate.mapping.Map(buildingContext, owner); map.setTypeName(getTypeName(property)); binder.bindCollection(property, map, owner, mappings, path, sessionFactoryBeanName); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SetCollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SetCollectionType.java index 956521a785..d85475af30 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SetCollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SetCollectionType.java @@ -7,6 +7,8 @@ import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; @@ -18,7 +20,7 @@ public class SetCollectionType extends CollectionType { @Override public Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { org.hibernate.mapping.Set coll = new org.hibernate.mapping.Set(buildingContext, owner); coll.setCollectionTable(owner.getTable()); coll.setTypeName(getTypeName(property)); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SortedSetCollectionType.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SortedSetCollectionType.java index b92252f849..5098dd3ade 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SortedSetCollectionType.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SortedSetCollectionType.java @@ -8,6 +8,8 @@ import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; import org.hibernate.mapping.PersistentClass; +import jakarta.annotation.Nonnull; + import org.grails.datastore.mapping.model.types.ToMany; import org.grails.orm.hibernate.cfg.GrailsDomainBinder; @@ -19,7 +21,7 @@ public class SortedSetCollectionType extends CollectionType { @Override public Collection create(ToMany property, PersistentClass owner, - String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { + String path, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException { org.hibernate.mapping.Set coll = new org.hibernate.mapping.Set(buildingContext, owner); coll.setCollectionTable(owner.getTable()); coll.setTypeName(getTypeName(property)); diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractorSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractorSpec.groovy index f1e89a4758..69e006f6f3 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractorSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamespaceNameExtractorSpec.groovy @@ -87,14 +87,6 @@ class NamespaceNameExtractorSpec extends Specification { "the schema identifier" | 'schema' } - def "getSchemaName should return null when the input mappings object is null"() { - when: "the extractor is called with a null input" - def result = extractor.getSchemaName(null) - - then: "the result is null" - result == null - } - // --- Tests for getCatalogName --- def "should return the catalog name when the full object graph exists"() { @@ -161,12 +153,4 @@ class NamespaceNameExtractorSpec extends Specification { "the catalog identifier" | 'catalog' } - def "getCatalogName should return null when the input mappings object is null"() { - when: "the extractor is called with a null input" - def result = extractor.getCatalogName(null) - - then: "the result is null" - result == null - } - } \ No newline at end of file
