You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2025/07/10 03:01:39 UTC
(grails-core) 01/22: Generalized clean up of code
This is an automated email from the ASF dual-hosted git repository.
borinquenkid pushed a commit to branch merge-hibernate6
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 6ab00dd3e83e8681976a0abc527d373e1981f44b
Author: Walter Duque de Estrada <wb...@mac.com>
AuthorDate: Thu Jun 19 19:43:25 2025 -0500
Generalized clean up of code
---
.../orm/hibernate/cfg/GrailsDomainBinder.java | 383 ++++++++++-----------
.../orm/hibernate/cfg/HibernateMappingContext.java | 12 +
2 files changed, 200 insertions(+), 195 deletions(-)
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index 574ba1a070..b3ea9b160e 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -32,7 +32,6 @@ import org.hibernate.MappingException;
import org.hibernate.boot.internal.MetadataBuildingContextRootImpl;
import org.hibernate.boot.model.internal.BinderHelper;
import org.hibernate.boot.model.naming.Identifier;
-import org.hibernate.boot.registry.classloading.spi.ClassLoaderService;
import org.hibernate.boot.spi.*;
import org.hibernate.cfg.*;
import org.hibernate.engine.OptimisticLockStyle;
@@ -77,21 +76,21 @@ import java.util.Set;
@SuppressWarnings("WeakerAccess")
public class GrailsDomainBinder implements MetadataContributor {
- protected static final String CASCADE_ALL_DELETE_ORPHAN = "all-delete-orphan";
- protected static final String FOREIGN_KEY_SUFFIX = "_id";
- protected static final String STRING_TYPE = "string";
- protected static final String EMPTY_PATH = "";
- protected static final char UNDERSCORE = '_';
- protected static final String CASCADE_ALL = "all";
- protected static final String CASCADE_SAVE_UPDATE = "save-update";
- protected static final String CASCADE_NONE = "none";
- protected static final String BACKTICK = "`";
-
- protected static final String ENUM_TYPE_CLASS = "org.hibernate.type.EnumType";
- protected static final String ENUM_CLASS_PROP = "enumClass";
- protected static final String ENUM_TYPE_PROP = "type";
- protected static final String DEFAULT_ENUM_TYPE = "default";
- protected static final Logger LOG = LoggerFactory.getLogger(GrailsDomainBinder.class);
+ private static final String CASCADE_ALL_DELETE_ORPHAN = "all-delete-orphan";
+ private static final String FOREIGN_KEY_SUFFIX = "_id";
+ private static final String STRING_TYPE = "string";
+ private static final String EMPTY_PATH = "";
+ private static final char UNDERSCORE = '_';
+ private static final String CASCADE_ALL = "all";
+ private static final String CASCADE_SAVE_UPDATE = "save-update";
+ private static final String CASCADE_NONE = "none";
+ private static final String BACKTICK = "`";
+
+ private static final String ENUM_TYPE_CLASS = "org.hibernate.type.EnumType";
+ private static final String ENUM_CLASS_PROP = "enumClass";
+ private static final String ENUM_TYPE_PROP = "type";
+ private static final String DEFAULT_ENUM_TYPE = "default";
+ private static final Logger LOG = LoggerFactory.getLogger(GrailsDomainBinder.class);
public static final String SEQUENCE_KEY = "sequence";
/**
* Overrideable naming strategy. Defaults to <code>ImprovedNamingStrategy</code> but can
@@ -102,18 +101,18 @@ public class GrailsDomainBinder implements MetadataContributor {
NAMING_STRATEGIES.put(ConnectionSource.DEFAULT, ImprovedNamingStrategy.INSTANCE);
}
- protected final CollectionType CT = new CollectionType(null, this) {
+ private final CollectionType CT = new CollectionType(null, this) {
public Collection create(ToMany property, PersistentClass owner, String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
return null;
}
};
- protected final String sessionFactoryName;
- protected final String dataSourceName;
- protected final HibernateMappingContext hibernateMappingContext;
- protected Closure defaultMapping;
- protected PersistentEntityNamingStrategy namingStrategy;
- protected MetadataBuildingContext metadataBuildingContext;
+ private final String sessionFactoryName;
+ private final String dataSourceName;
+ private final HibernateMappingContext hibernateMappingContext;
+ private Closure defaultMapping;
+ private PersistentEntityNamingStrategy namingStrategy;
+ private MetadataBuildingContext metadataBuildingContext;
public GrailsDomainBinder(
String dataSourceName,
@@ -146,27 +145,33 @@ public class GrailsDomainBinder implements MetadataContributor {
@Override
public void contribute(InFlightMetadataCollector metadataCollector, IndexView jandexIndex) {
- MetadataBuildingOptions options = metadataCollector.getMetadataBuildingOptions();
- ClassLoaderService classLoaderService = options.getServiceRegistry().getService(ClassLoaderService.class);
-
this.metadataBuildingContext = new MetadataBuildingContextRootImpl(
"default",
metadataCollector.getBootstrapContext(),
- options,
+ metadataCollector.getMetadataBuildingOptions(),
metadataCollector
);
- java.util.Collection<PersistentEntity> persistentEntities = hibernateMappingContext.getPersistentEntities();
- for (PersistentEntity persistentEntity : persistentEntities) {
- if(!persistentEntity.getJavaClass().isAnnotationPresent(Entity.class)) {
- if(ConnectionSourcesSupport.usesConnectionSource(persistentEntity, dataSourceName) && persistentEntity.isRoot()) {
- bindRoot((HibernatePersistentEntity) persistentEntity, metadataCollector, sessionFactoryName);
- }
- }
- }
+ filterHibernateEntities(hibernateMappingContext.getHibernatePersistentEntities())
+ .forEach(hibernatePersistentEntity -> bindRoot(hibernatePersistentEntity, metadataCollector, sessionFactoryName));
+
}
+ private List<HibernatePersistentEntity> filterHibernateEntities(java.util.Collection<HibernatePersistentEntity> persistentEntities) {
+ return persistentEntities.stream()
+ .filter(this::isNotAnnotatedEntity)
+ .filter(this::usesConnectionSource)
+ .filter(HibernatePersistentEntity::isRoot).toList();
+ }
+
+ private boolean usesConnectionSource(HibernatePersistentEntity persistentEntity) {
+ return ConnectionSourcesSupport.usesConnectionSource(persistentEntity, dataSourceName);
+ }
+
+ private boolean isNotAnnotatedEntity(HibernatePersistentEntity persistentEntity) {
+ return !persistentEntity.getJavaClass().isAnnotationPresent(Entity.class);
+ }
/**
@@ -210,7 +215,7 @@ public class GrailsDomainBinder implements MetadataContributor {
NAMING_STRATEGIES.put(datasourceName, namingStrategy);
}
- protected void bindMapSecondPass(ToMany property, InFlightMetadataCollector mappings,
+ private void bindMapSecondPass(ToMany property, InFlightMetadataCollector mappings,
Map<?, ?> persistentClasses, org.hibernate.mapping.Map map, String sessionFactoryBeanName) {
bindCollectionSecondPass(property, mappings, persistentClasses, map, sessionFactoryBeanName);
@@ -252,7 +257,7 @@ public class GrailsDomainBinder implements MetadataContributor {
map.setInverse(false);
}
- protected ColumnConfig getSingleColumnConfig(PropertyConfig propertyConfig) {
+ private ColumnConfig getSingleColumnConfig(PropertyConfig propertyConfig) {
if (propertyConfig != null) {
List<ColumnConfig> columns = propertyConfig.getColumns();
if (columns != null && !columns.isEmpty()) {
@@ -262,7 +267,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return null;
}
- protected void bindListSecondPass(ToMany property, InFlightMetadataCollector mappings,
+ private void bindListSecondPass(ToMany property, InFlightMetadataCollector mappings,
Map<?, ?> persistentClasses, org.hibernate.mapping.List list, String sessionFactoryBeanName) {
bindCollectionSecondPass(property, mappings, persistentClasses, list, sessionFactoryBeanName);
@@ -342,7 +347,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindCollectionSecondPass(ToMany property, InFlightMetadataCollector mappings,
+ private void bindCollectionSecondPass(ToMany property, InFlightMetadataCollector mappings,
Map<?, ?> persistentClasses, Collection collection, String sessionFactoryBeanName) {
PersistentClass associatedClass = null;
@@ -505,7 +510,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
@SuppressWarnings("unchecked")
- protected String buildOrderByClause(String hqlOrderBy, PersistentClass associatedClass, String role, String defaultOrder) {
+ private String buildOrderByClause(String hqlOrderBy, PersistentClass associatedClass, String role, String defaultOrder) {
String orderByString = null;
if (hqlOrderBy != null) {
List<String> properties = new ArrayList<>();
@@ -598,7 +603,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return orderByString;
}
- protected boolean isNonPropertyToken(String token) {
+ private boolean isNonPropertyToken(String token) {
if (" ".equals(token)) return true;
if (",".equals(token)) return true;
if (token.equalsIgnoreCase("desc")) return true;
@@ -606,7 +611,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return false;
}
- protected Set<String> buildDiscriminatorSet(HibernatePersistentEntity domainClass) {
+ private Set<String> buildDiscriminatorSet(HibernatePersistentEntity domainClass) {
Set<String> theSet = new HashSet<>();
Mapping mapping = domainClass.getMapping().getMappedForm();
@@ -633,7 +638,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return theSet;
}
- protected Mapping getRootMapping(PersistentEntity referenced) {
+ private Mapping getRootMapping(PersistentEntity referenced) {
if (referenced == null) return null;
Class<?> current = referenced.getJavaClass();
while (true) {
@@ -645,11 +650,11 @@ public class GrailsDomainBinder implements MetadataContributor {
return getMapping(current);
}
- protected boolean isBidirectionalOneToManyMap(Association property) {
+ private boolean isBidirectionalOneToManyMap(Association property) {
return Map.class.isAssignableFrom(property.getType()) && property.isBidirectional();
}
- protected void bindCollectionWithJoinTable(ToMany property,
+ private void bindCollectionWithJoinTable(ToMany property,
InFlightMetadataCollector mappings, Collection collection, PropertyConfig config, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
@@ -730,19 +735,19 @@ public class GrailsDomainBinder implements MetadataContributor {
bindCollectionForPropertyConfig(collection, config);
}
- protected String addUnderscore(String s1, String s2) {
+ private String addUnderscore(String s1, String s2) {
return removeBackticks(s1) + UNDERSCORE + removeBackticks(s2);
}
- protected String removeBackticks(String s) {
+ private String removeBackticks(String s) {
return s.startsWith("`") && s.endsWith("`") ? s.substring(1, s.length() - 1) : s;
}
- protected Column getColumnForSimpleValue(SimpleValue element) {
+ private Column getColumnForSimpleValue(SimpleValue element) {
return element.getColumns().iterator().next();
}
- protected String getTypeName(PersistentProperty property, PropertyConfig config, Mapping mapping) {
+ private String getTypeName(PersistentProperty property, PropertyConfig config, Mapping mapping) {
if (config != null && config.getType() != null) {
final Object typeObj = config.getType();
if (typeObj instanceof Class<?>) {
@@ -758,7 +763,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return null;
}
- protected void bindColumnConfigToColumn(PersistentProperty property, Column column, ColumnConfig columnConfig) {
+ private void bindColumnConfigToColumn(PersistentProperty property, Column column, ColumnConfig columnConfig) {
final PropertyConfig mappedForm = property != null ? (PropertyConfig) property.getMapping().getMappedForm() : null;
boolean allowUnique = mappedForm != null && !mappedForm.isUniqueWithinGroup();
@@ -783,11 +788,11 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected boolean hasJoinColumnMapping(PropertyConfig config) {
+ private boolean hasJoinColumnMapping(PropertyConfig config) {
return config != null && config.getJoinTable() != null && config.getJoinTable().getColumn() != null;
}
- protected boolean shouldCollectionBindWithJoinColumn(ToMany property) {
+ private boolean shouldCollectionBindWithJoinColumn(ToMany property) {
PropertyConfig config = getPropertyConfig(property);
JoinTable jt = config != null ? config.getJoinTable() : new JoinTable();
@@ -798,7 +803,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param property The property to bind
* @param manyToOne The inverse side
*/
- protected void bindUnidirectionalOneToManyInverseValues(ToMany property, ManyToOne manyToOne) {
+ private void bindUnidirectionalOneToManyInverseValues(ToMany property, ManyToOne manyToOne) {
PropertyConfig config = getPropertyConfig(property);
if (config == null) {
manyToOne.setLazy(true);
@@ -819,7 +824,7 @@ public class GrailsDomainBinder implements MetadataContributor {
manyToOne.setReferencedEntityName(property.getAssociatedEntity().getName());
}
- protected void bindCollectionForPropertyConfig(Collection collection, PropertyConfig config) {
+ private void bindCollectionForPropertyConfig(Collection collection, PropertyConfig config) {
if (config == null) {
collection.setLazy(true);
collection.setExtraLazy(false);
@@ -835,7 +840,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- public PropertyConfig getPropertyConfig(PersistentProperty property) {
+ private PropertyConfig getPropertyConfig(PersistentProperty property) {
return (PropertyConfig) property.getMapping().getMappedForm();
}
@@ -845,7 +850,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param property The property to check
* @return true if it is unidirectional and a one-to-many
*/
- protected boolean isUnidirectionalOneToMany(PersistentProperty property) {
+ private boolean isUnidirectionalOneToMany(PersistentProperty property) {
return ((property instanceof org.grails.datastore.mapping.model.types.OneToMany) && !((Association)property).isBidirectional());
}
@@ -857,7 +862,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The mappings
* @param sessionFactoryBeanName The name of the session factory
*/
- protected void bindDependentKeyValue(PersistentProperty property, DependantValue key,
+ private void bindDependentKeyValue(PersistentProperty property, DependantValue key,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
if (LOG.isDebugEnabled()) {
@@ -886,7 +891,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param persistentClasses
* @return The DependantValue (key)
*/
- protected DependantValue createPrimaryKeyValue(InFlightMetadataCollector mappings, PersistentProperty property,
+ private DependantValue createPrimaryKeyValue(InFlightMetadataCollector mappings, PersistentProperty property,
Collection collection, Map<?, ?> persistentClasses) {
KeyValue keyValue;
DependantValue key;
@@ -919,7 +924,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings
* @param collection
*/
- protected 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, InFlightMetadataCollector mappings, Collection collection) {
Value v = collection.getElement();
v.createForeignKey();
String entityName;
@@ -945,7 +950,7 @@ public class GrailsDomainBinder implements MetadataContributor {
referenced.addProperty(prop);
}
- protected Property getProperty(PersistentClass associatedClass, String propertyName) throws MappingException {
+ private Property getProperty(PersistentClass associatedClass, String propertyName) throws MappingException {
try {
return associatedClass.getProperty(propertyName);
}
@@ -966,7 +971,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param key The key
* @param otherSide The other side of the relationship
*/
- protected void linkBidirectionalOneToMany(Collection collection, PersistentClass associatedClass, DependantValue key, PersistentProperty otherSide) {
+ private void linkBidirectionalOneToMany(Collection collection, PersistentClass associatedClass, DependantValue key, PersistentProperty otherSide) {
collection.setInverse(true);
// Iterator mappedByColumns = associatedClass.getProperty(otherSide.getName()).getValue().getColumnIterator();
@@ -983,7 +988,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param property The property
* @return true if sorted
*/
- protected boolean isSorted(PersistentProperty property) {
+ private boolean isSorted(PersistentProperty property) {
return SortedSet.class.isAssignableFrom(property.getType());
}
@@ -998,13 +1003,13 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param element The ManyToOne element
* @param mappings The mappings
*/
- protected void bindManyToMany(Association property, ManyToOne element,
+ private void bindManyToMany(Association property, ManyToOne element,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
bindManyToOne(property, element, EMPTY_PATH, mappings, sessionFactoryBeanName);
element.setReferencedEntityName(property.getOwner().getName());
}
- protected void linkValueUsingAColumnCopy(PersistentProperty prop, Column column, DependantValue key) {
+ private void linkValueUsingAColumnCopy(PersistentProperty prop, Column column, DependantValue key) {
Column mappingColumn = new Column();
mappingColumn.setName(column.getName());
mappingColumn.setLength(column.getLength());
@@ -1025,7 +1030,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The Hibernate mappings instance
* @param path
*/
- protected void bindCollection(ToMany property, Collection collection,
+ private void bindCollection(ToMany property, Collection collection,
PersistentClass owner, InFlightMetadataCollector mappings, String path, String sessionFactoryBeanName) {
// set role
@@ -1084,7 +1089,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* We bind collections with foreign keys if specified in the mapping and only if
* it is a unidirectional one-to-many that is.
*/
- protected boolean shouldBindCollectionWithForeignKey(ToMany property) {
+ private boolean shouldBindCollectionWithForeignKey(ToMany property) {
return ((property instanceof org.grails.datastore.mapping.model.types.OneToMany) && property.isBidirectional() ||
!shouldCollectionBindWithJoinColumn(property)) &&
!Map.class.isAssignableFrom(property.getType()) &&
@@ -1092,14 +1097,14 @@ public class GrailsDomainBinder implements MetadataContributor {
!(property instanceof Basic);
}
- protected String getNameForPropertyAndPath(PersistentProperty property, String path) {
+ private String getNameForPropertyAndPath(PersistentProperty property, String path) {
if (isNotEmpty(path)) {
return qualify(path, property.getName());
}
return property.getName();
}
- protected void bindCollectionTable(ToMany property, InFlightMetadataCollector mappings,
+ private void bindCollectionTable(ToMany property, InFlightMetadataCollector mappings,
Collection collection, Table ownerTable, String sessionFactoryBeanName) {
String owningTableSchema = ownerTable.getSchema();
@@ -1133,7 +1138,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* the relationship has to "own" the relationship so that there is not a situation
* where you have two mapping tables for left_right and right_left
*/
- protected String calculateTableForMany(ToMany property, String sessionFactoryBeanName) {
+ private String calculateTableForMany(ToMany property, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
String propertyColumnName = namingStrategy.propertyToColumnName(property.getName());
@@ -1188,7 +1193,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return addUnderscore(right, left);
}
- protected String trimBackTigs(String tableName) {
+ private String trimBackTigs(String tableName) {
if (tableName.startsWith(BACKTICK)) {
return tableName.substring(1, tableName.length() - 1);
}
@@ -1201,7 +1206,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param domainClass The domain class to evaluate
* @return The table name
*/
- protected String getTableName(PersistentEntity domainClass, String sessionFactoryBeanName) {
+ private String getTableName(PersistentEntity domainClass, String sessionFactoryBeanName) {
Mapping m = getMapping(domainClass);
String tableName = null;
if (m != null && m.getTableName() != null) {
@@ -1221,7 +1226,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return tableName;
}
- protected NamingStrategy getNamingStrategy(String sessionFactoryBeanName) {
+ private NamingStrategy getNamingStrategy(String sessionFactoryBeanName) {
String key = "sessionFactory".equals(sessionFactoryBeanName) ?
ConnectionSource.DEFAULT :
sessionFactoryBeanName.substring("sessionFactory_".length());
@@ -1245,28 +1250,11 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- /**
- * Evaluates a Mapping object from the domain class if it has a mapping closure
- *
- * @param domainClass The domain class
- * @return the mapping
- */
- public Mapping evaluateMapping(PersistentEntity domainClass) {
- return evaluateMapping(domainClass, null);
- }
-
- public Mapping evaluateMapping(PersistentEntity domainClass, Closure<?> defaultMapping) {
- return evaluateMapping(domainClass, defaultMapping, true);
- }
-
- public Mapping evaluateMapping(PersistentEntity domainClass, Closure<?> defaultMapping, boolean cache) {
+ private void evaluateMapping(PersistentEntity domainClass) {
try {
final Mapping m = (Mapping) domainClass.getMapping().getMappedForm();
trackCustomCascadingSaves(m, domainClass.getPersistentProperties());
- if (cache) {
- AbstractGrailsDomainBinder.cacheMapping(domainClass.getJavaClass(), m);
- }
- return m;
+ AbstractGrailsDomainBinder.cacheMapping(domainClass.getJavaClass(), m);
} catch (Exception e) {
throw new DatastoreConfigurationException("Error evaluating ORM mappings block for domain [" +
domainClass.getName() + "]: " + e.getMessage(), e);
@@ -1278,7 +1266,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mapping The Mapping.
* @param persistentProperties The persistent properties of the domain class.
*/
- protected void trackCustomCascadingSaves(Mapping mapping, Iterable<PersistentProperty> persistentProperties) {
+ private void trackCustomCascadingSaves(Mapping mapping, Iterable<PersistentProperty> persistentProperties) {
for (PersistentProperty property : persistentProperties) {
PropertyConfig propConf = mapping.getPropertyConfig(property.getName());
@@ -1293,7 +1281,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param cascade The string containing the cascade properties.
* @return True if save-update or any other cascade property that encompasses those is present.
*/
- protected boolean isSaveUpdateCascade(String cascade) {
+ private boolean isSaveUpdateCascade(String cascade) {
String[] cascades = cascade.split(",");
for (String cascadeProp : cascades) {
@@ -1313,7 +1301,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param theClass The domain class in question
* @return A Mapping object or null
*/
- public static Mapping getMapping(Class<?> theClass) {
+ private static Mapping getMapping(Class<?> theClass) {
return AbstractGrailsDomainBinder.getMapping(theClass);
}
@@ -1323,7 +1311,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param domainClass The domain class in question
* @return A Mapping object or null
*/
- public static Mapping getMapping(PersistentEntity domainClass) {
+ private static Mapping getMapping(PersistentEntity domainClass) {
return domainClass == null ? null : AbstractGrailsDomainBinder.getMapping(domainClass.getJavaClass());
}
@@ -1343,7 +1331,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param persistentClass The persistant class
* @param mappings Existing mappings
*/
- protected void bindClass(PersistentEntity domainClass, PersistentClass persistentClass, InFlightMetadataCollector mappings) {
+ private void bindClass(PersistentEntity domainClass, PersistentClass persistentClass, InFlightMetadataCollector mappings) {
boolean autoImport = mappings.getMetadataBuildingOptions().getMappingDefaults().isAutoImportEnabled();
org.grails.datastore.mapping.config.Entity mappedForm = domainClass.getMapping().getMappedForm();
@@ -1383,7 +1371,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The Hibernate Mappings object
* @param sessionFactoryBeanName the session factory bean name
*/
- public void bindRoot(HibernatePersistentEntity entity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
+ private void bindRoot(HibernatePersistentEntity entity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
if (mappings.getEntityBinding(entity.getName()) != null) {
LOG.info("[GrailsDomainBinder] Class [" + entity.getName() + "] is already mapped, skipping.. ");
return;
@@ -1428,7 +1416,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings mappings to add the filter
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void addMultiTenantFilterIfNecessary(
+ private void addMultiTenantFilterIfNecessary(
HibernatePersistentEntity entity, PersistentClass persistentClass,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
@@ -1469,16 +1457,21 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The mappings instance
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindSubClasses(HibernatePersistentEntity domainClass, PersistentClass parent,
+ private void bindSubClasses(HibernatePersistentEntity domainClass, PersistentClass parent,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
- final java.util.Collection<PersistentEntity> subClasses = domainClass.getMappingContext().getDirectChildEntities(domainClass);
+ domainClass.getMappingContext()
+ .getDirectChildEntities(domainClass)
+ .stream()
+ .filter(HibernatePersistentEntity.class::isInstance)
+ .map(HibernatePersistentEntity.class::cast)
+ .filter(this::usesConnectionSource)
+ .filter(sub -> isChildEntity(sub, domainClass))
+ .forEach( sub -> bindSubClass(sub, parent, mappings, sessionFactoryBeanName));
- for (PersistentEntity sub : subClasses) {
- final Class javaClass = sub.getJavaClass();
- if (javaClass.getSuperclass().equals(domainClass.getJavaClass()) && ConnectionSourcesSupport.usesConnectionSource(sub, dataSourceName)) {
- bindSubClass((HibernatePersistentEntity)sub, parent, mappings, sessionFactoryBeanName);
- }
- }
+ }
+
+ private boolean isChildEntity(HibernatePersistentEntity sub, HibernatePersistentEntity parent) {
+ return sub.getJavaClass().getSuperclass().equals(parent.getJavaClass());
}
/**
@@ -1489,9 +1482,9 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The mappings instance
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindSubClass(HibernatePersistentEntity sub, PersistentClass parent,
+ private void bindSubClass(HibernatePersistentEntity sub, PersistentClass parent,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
- evaluateMapping(sub, defaultMapping);
+ evaluateMapping(sub);
Mapping m = getMapping(parent.getMappedClass());
Subclass subClass;
boolean tablePerSubclass = m != null && !m.getTablePerHierarchy() && !m.isTablePerConcreteClass();
@@ -1558,7 +1551,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
- public void bindUnionSubclass(HibernatePersistentEntity subClass, UnionSubclass unionSubclass,
+ private void bindUnionSubclass(HibernatePersistentEntity subClass, UnionSubclass unionSubclass,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException {
bindClass(subClass, unionSubclass, mappings);
@@ -1604,7 +1597,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param gormMapping The GORM mapping object
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindJoinedSubClass(HibernatePersistentEntity sub, JoinedSubclass joinedSubclass,
+ private void bindJoinedSubClass(HibernatePersistentEntity sub, JoinedSubclass joinedSubclass,
InFlightMetadataCollector mappings, Mapping gormMapping, String sessionFactoryBeanName) {
bindClass(sub, joinedSubclass, mappings);
@@ -1633,7 +1626,7 @@ public class GrailsDomainBinder implements MetadataContributor {
createClassProperties(sub, joinedSubclass, mappings, sessionFactoryBeanName);
}
- protected String getJoinedSubClassTableName(
+ private String getJoinedSubClassTableName(
HibernatePersistentEntity sub, PersistentClass model, Table denormalizedSuperTable,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
@@ -1654,7 +1647,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param subClass The Hibernate SubClass instance
* @param mappings The mappings instance
*/
- protected void bindSubClass(HibernatePersistentEntity sub, Subclass subClass, InFlightMetadataCollector mappings,
+ private void bindSubClass(HibernatePersistentEntity sub, Subclass subClass, InFlightMetadataCollector mappings,
String sessionFactoryBeanName) {
bindClass(sub, subClass, mappings);
@@ -1674,7 +1667,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param entity The root class entity
* @param mappings The mappings instance
*/
- protected void bindDiscriminatorProperty(Table table, RootClass entity, InFlightMetadataCollector mappings) {
+ private void bindDiscriminatorProperty(Table table, RootClass entity, InFlightMetadataCollector mappings) {
Mapping m = getMapping(entity.getMappedClass());
SimpleValue d = new BasicValue(metadataBuildingContext, table);
entity.setDiscriminator(d);
@@ -1720,7 +1713,7 @@ public class GrailsDomainBinder implements MetadataContributor {
entity.setPolymorphic(true);
}
- protected void configureDerivedProperties(PersistentEntity domainClass, Mapping m) {
+ private void configureDerivedProperties(PersistentEntity domainClass, Mapping m) {
for (PersistentProperty prop : domainClass.getPersistentProperties()) {
PropertyConfig propertyConfig = m.getPropertyConfig(prop.getName());
if (propertyConfig != null && propertyConfig.getFormula() != null) {
@@ -1732,7 +1725,7 @@ public class GrailsDomainBinder implements MetadataContributor {
/*
* Binds a persistent classes to the table representation and binds the class properties
*/
- protected void bindRootPersistentClassCommonValues(HibernatePersistentEntity domainClass,
+ private void bindRootPersistentClassCommonValues(HibernatePersistentEntity domainClass,
RootClass root, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
// get the schema and catalog names from the configuration
@@ -1806,7 +1799,7 @@ public class GrailsDomainBinder implements MetadataContributor {
- protected void bindIdentity(
+ private void bindIdentity(
HibernatePersistentEntity domainClass,
RootClass root,
InFlightMetadataCollector mappings,
@@ -1840,7 +1833,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindCompositeId(PersistentEntity domainClass, RootClass root,
+ private void bindCompositeId(PersistentEntity domainClass, RootClass root,
CompositeIdentity compositeIdentity, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
HibernatePersistentEntity hibernatePersistentEntity = (HibernatePersistentEntity) domainClass;
Component id = new Component(metadataBuildingContext, root);
@@ -1876,7 +1869,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The Hibernate Mappings instance
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void createClassProperties(HibernatePersistentEntity domainClass, PersistentClass persistentClass,
+ private void createClassProperties(HibernatePersistentEntity domainClass, PersistentClass persistentClass,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
final List<PersistentProperty> persistentProperties = domainClass.getPersistentProperties();
@@ -2005,7 +1998,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return association instanceof org.grails.datastore.mapping.model.types.OneToOne && ((org.grails.datastore.mapping.model.types.OneToOne)association).isForeignKeyInChild();
}
- protected void bindNaturalIdentifier(Table table, Mapping mapping, PersistentClass persistentClass) {
+ private void bindNaturalIdentifier(Table table, Mapping mapping, PersistentClass persistentClass) {
Object o = mapping != null ? mapping.getIdentity() : null;
if (!(o instanceof Identity)) {
return;
@@ -2036,7 +2029,7 @@ public class GrailsDomainBinder implements MetadataContributor {
table.addUniqueKey(uk);
}
- protected void setGeneratedUniqueName(UniqueKey uk) {
+ private void setGeneratedUniqueName(UniqueKey uk) {
StringBuilder sb = new StringBuilder(uk.getTable().getName()).append('_');
for (Object col : uk.getColumns()) {
sb.append(((Column) col).getName()).append('_');
@@ -2065,7 +2058,7 @@ public class GrailsDomainBinder implements MetadataContributor {
uk.setName(name);
}
- protected boolean canBindOneToOneWithSingleColumnAndForeignKey(Association currentGrailsProp) {
+ private boolean canBindOneToOneWithSingleColumnAndForeignKey(Association currentGrailsProp) {
if (currentGrailsProp.isBidirectional()) {
final Association otherSide = currentGrailsProp.getInverseSide();
if(otherSide != null) {
@@ -2080,7 +2073,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return false;
}
- protected boolean isIdentityProperty(Mapping gormMapping, PersistentProperty currentGrailsProp) {
+ private boolean isIdentityProperty(Mapping gormMapping, PersistentProperty currentGrailsProp) {
if (gormMapping == null) {
return false;
}
@@ -2094,13 +2087,13 @@ public class GrailsDomainBinder implements MetadataContributor {
return identityName != null && identityName.equals(currentGrailsProp.getName());
}
- protected void bindEnumType(PersistentProperty property, SimpleValue simpleValue,
+ private void bindEnumType(PersistentProperty property, SimpleValue simpleValue,
String path, String sessionFactoryBeanName) {
bindEnumType(property, property.getType(), simpleValue,
getColumnNameForPropertyAndPath(property, path, null, sessionFactoryBeanName));
}
- protected void bindEnumType(PersistentProperty property, Class<?> propertyType, SimpleValue simpleValue, String columnName) {
+ private void bindEnumType(PersistentProperty property, Class<?> propertyType, SimpleValue simpleValue, String columnName) {
PropertyConfig pc = getPropertyConfig(property);
final PersistentEntity owner = property.getOwner();
@@ -2158,7 +2151,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected Class<?> getUserType(PersistentProperty currentGrailsProp) {
+ private Class<?> getUserType(PersistentProperty currentGrailsProp) {
Class<?> userType = null;
PropertyConfig config = getPropertyConfig(currentGrailsProp);
Object typeObj = config == null ? null : config.getType();
@@ -2181,7 +2174,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return userType;
}
- protected boolean isCompositeIdProperty(Mapping gormMapping, PersistentProperty currentGrailsProp) {
+ private boolean isCompositeIdProperty(Mapping gormMapping, PersistentProperty currentGrailsProp) {
if (gormMapping != null && gormMapping.getIdentity() != null) {
Object id = gormMapping.getIdentity();
if (id instanceof CompositeIdentity) {
@@ -2195,7 +2188,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return false;
}
- protected boolean isBidirectionalManyToOne(PersistentProperty currentGrailsProp) {
+ private boolean isBidirectionalManyToOne(PersistentProperty currentGrailsProp) {
return ((currentGrailsProp instanceof org.grails.datastore.mapping.model.types.ManyToOne) && ((Association)currentGrailsProp).isBidirectional());
}
@@ -2208,7 +2201,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The Hibernate Mappings object
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindComponent(Component component, Embedded property,
+ private void bindComponent(Component component, Embedded property,
boolean isNullable, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
component.setEmbedded(true);
Class<?> type = property.getType();
@@ -2217,7 +2210,7 @@ public class GrailsDomainBinder implements MetadataContributor {
component.setComponentClassName(type.getName());
PersistentEntity domainClass = property.getAssociatedEntity();
- evaluateMapping(domainClass, defaultMapping);
+ evaluateMapping(domainClass);
final List<PersistentProperty> properties = domainClass.getPersistentProperties();
Table table = component.getOwner().getTable();
PersistentClass persistentClass = component.getOwner();
@@ -2238,7 +2231,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindComponentProperty(Component component, PersistentProperty componentProperty,
+ private void bindComponentProperty(Component component, PersistentProperty componentProperty,
PersistentProperty currentGrailsProp, PersistentClass persistentClass,
String path, Table table, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
Value value;
@@ -2302,7 +2295,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected boolean isComponentPropertyNullable(PersistentProperty componentProperty) {
+ private boolean isComponentPropertyNullable(PersistentProperty componentProperty) {
if (componentProperty == null) return false;
final PersistentEntity domainClass = componentProperty.getOwner();
final Mapping mapping = getMapping(domainClass.getJavaClass());
@@ -2312,7 +2305,7 @@ public class GrailsDomainBinder implements MetadataContributor {
/*
* Creates a persistent class property based on the GrailDomainClassProperty instance.
*/
- protected Property createProperty(Value value, PersistentClass persistentClass, PersistentProperty grailsProperty, InFlightMetadataCollector mappings) {
+ private Property createProperty(Value value, PersistentClass persistentClass, PersistentProperty grailsProperty, InFlightMetadataCollector mappings) {
// set type
value.setTypeUsingReflection(persistentClass.getClassName(), grailsProperty.getName());
@@ -2326,7 +2319,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return prop;
}
- protected 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, InFlightMetadataCollector mappings) {
one.setReferencedEntityName(currentGrailsProp.getAssociatedEntity().getName());
one.setIgnoreNotFound(true);
}
@@ -2336,7 +2329,7 @@ public class GrailsDomainBinder implements MetadataContributor {
*
*/
@SuppressWarnings("unchecked")
- protected void bindManyToOne(Association property, ManyToOne manyToOne,
+ private void bindManyToOne(Association property, ManyToOne manyToOne,
String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
@@ -2385,7 +2378,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindCompositeIdentifierToManyToOne(Association property,
+ private void bindCompositeIdentifierToManyToOne(Association property,
SimpleValue value, CompositeIdentity compositeId, PersistentEntity refDomainClass,
String path, String sessionFactoryBeanName) {
@@ -2467,11 +2460,11 @@ public class GrailsDomainBinder implements MetadataContributor {
return expectedForeignKeyColumnLength;
}
- protected boolean hasCompositeIdentifier(Mapping mapping) {
+ private boolean hasCompositeIdentifier(Mapping mapping) {
return mapping != null && (mapping.getIdentity() instanceof CompositeIdentity);
}
- protected void bindOneToOne(final org.grails.datastore.mapping.model.types.OneToOne property, OneToOne oneToOne,
+ private void bindOneToOne(final org.grails.datastore.mapping.model.types.OneToOne property, OneToOne oneToOne,
String path, String sessionFactoryBeanName) {
PropertyConfig config = getPropertyConfig(property);
final Association otherSide = property.getInverseSide();
@@ -2505,13 +2498,13 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindOneToOneInternal(org.grails.datastore.mapping.model.types.OneToOne property, OneToOne oneToOne, String path) {
+ private void bindOneToOneInternal(org.grails.datastore.mapping.model.types.OneToOne property, OneToOne oneToOne, String path) {
//no-op, for subclasses to extend
}
/**
*/
- protected void bindManyToOneValues(org.grails.datastore.mapping.model.types.Association property, ManyToOne manyToOne) {
+ private void bindManyToOneValues(org.grails.datastore.mapping.model.types.Association property, ManyToOne manyToOne) {
PropertyConfig config = getPropertyConfig(property);
if (config != null && config.getFetchMode() != null) {
@@ -2531,7 +2524,7 @@ public class GrailsDomainBinder implements MetadataContributor {
manyToOne.setReferencedEntityName(property.getAssociatedEntity().getName());
}
- protected void bindVersion(PersistentProperty version, RootClass entity,
+ private void bindVersion(PersistentProperty version, RootClass entity,
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
if (version != null) {
@@ -2568,7 +2561,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
@SuppressWarnings("unchecked")
- protected void bindSimpleId(PersistentProperty identifier, RootClass entity,
+ private void bindSimpleId(PersistentProperty identifier, RootClass entity,
InFlightMetadataCollector mappings, Identity mappedId, String sessionFactoryBeanName) {
Mapping mapping = getMapping(identifier.getOwner());
@@ -2655,7 +2648,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param prop The Hibernate property
* @param mappings The Hibernate mappings
*/
- protected void bindProperty(PersistentProperty grailsProperty, Property prop, InFlightMetadataCollector mappings) {
+ private void bindProperty(PersistentProperty grailsProperty, Property prop, InFlightMetadataCollector mappings) {
// set the property name
prop.setName(grailsProperty.getName());
if (isBidirectionalManyToOneWithListMapping(grailsProperty, prop)) {
@@ -2705,7 +2698,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected boolean getLaziness(PersistentProperty grailsProperty) {
+ private boolean getLaziness(PersistentProperty grailsProperty) {
PropertyConfig config = getPropertyConfig(grailsProperty);
final Boolean lazy = config.getLazy();
if(lazy == null && grailsProperty instanceof Association) {
@@ -2717,17 +2710,17 @@ public class GrailsDomainBinder implements MetadataContributor {
return false;
}
- protected boolean getInsertableness(PersistentProperty grailsProperty) {
+ private boolean getInsertableness(PersistentProperty grailsProperty) {
PropertyConfig config = getPropertyConfig(grailsProperty);
return config == null || config.getInsertable();
}
- protected boolean getUpdateableness(PersistentProperty grailsProperty) {
+ private boolean getUpdateableness(PersistentProperty grailsProperty) {
PropertyConfig config = getPropertyConfig(grailsProperty);
return config == null || config.getUpdatable();
}
- protected boolean isBidirectionalManyToOneWithListMapping(PersistentProperty grailsProperty, Property prop) {
+ private boolean isBidirectionalManyToOneWithListMapping(PersistentProperty grailsProperty, Property prop) {
if(grailsProperty instanceof Association) {
Association association = (Association) grailsProperty;
@@ -2739,7 +2732,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return false;
}
- protected void setCascadeBehaviour(PersistentProperty grailsProperty, Property prop) {
+ private void setCascadeBehaviour(PersistentProperty grailsProperty, Property prop) {
String cascadeStrategy = "none";
// set to cascade all for the moment
PersistentEntity domainClass = grailsProperty.getOwner();
@@ -2800,18 +2793,18 @@ public class GrailsDomainBinder implements MetadataContributor {
prop.setCascade(cascadeStrategy);
}
- protected boolean isCircularAssociation(PersistentProperty grailsProperty) {
+ private boolean isCircularAssociation(PersistentProperty grailsProperty) {
return grailsProperty.getType().equals(grailsProperty.getOwner().getJavaClass());
}
- protected void logCascadeMapping(Association grailsProperty, String cascadeStrategy, PersistentEntity referenced) {
+ private void logCascadeMapping(Association grailsProperty, String cascadeStrategy, PersistentEntity referenced) {
if (LOG.isDebugEnabled() & referenced != null) {
String assType = getAssociationDescription(grailsProperty);
LOG.debug("Mapping cascade strategy for " + assType + " property " + grailsProperty.getOwner().getName() + "." + grailsProperty.getName() + " referencing type [" + referenced.getJavaClass().getName() + "] -> [CASCADE: " + cascadeStrategy + "]");
}
}
- protected String getAssociationDescription(Association grailsProperty) {
+ private String getAssociationDescription(Association grailsProperty) {
String assType = "unknown";
if (grailsProperty instanceof ManyToMany) {
assType = "many-to-many";
@@ -2838,18 +2831,18 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param mappings The Hibernate mappings instance
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindSimpleValue(PersistentProperty property, PersistentProperty parentProperty,
+ private void bindSimpleValue(PersistentProperty property, PersistentProperty parentProperty,
SimpleValue simpleValue, String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
// set type
bindSimpleValue(property,parentProperty, simpleValue, path, getPropertyConfig(property), sessionFactoryBeanName);
}
- protected void bindSimpleValue(PersistentProperty grailsProp, SimpleValue simpleValue,
+ private void bindSimpleValue(PersistentProperty grailsProp, SimpleValue simpleValue,
String path, PropertyConfig propertyConfig, String sessionFactoryBeanName) {
bindSimpleValue(grailsProp, null, simpleValue, path, propertyConfig, sessionFactoryBeanName);
}
- protected void bindSimpleValue(PersistentProperty grailsProp,
+ private void bindSimpleValue(PersistentProperty grailsProp,
PersistentProperty parentProperty, SimpleValue simpleValue,
String path, PropertyConfig propertyConfig, String sessionFactoryBeanName) {
setTypeForPropertyConfig(grailsProp, simpleValue, propertyConfig);
@@ -2930,7 +2923,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void setTypeForPropertyConfig(PersistentProperty grailsProp, SimpleValue simpleValue, PropertyConfig config) {
+ private void setTypeForPropertyConfig(PersistentProperty grailsProp, SimpleValue simpleValue, PropertyConfig config) {
final String typeName = getTypeName(grailsProp, getPropertyConfig(grailsProp), getMapping(grailsProp.getOwner()));
if (typeName == null) {
simpleValue.setTypeName(grailsProp.getType().getName());
@@ -2952,7 +2945,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param columnName The property name
* @param mappings The mappings
*/
- protected void bindSimpleValue(String type, SimpleValue simpleValue, boolean nullable,
+ private void bindSimpleValue(String type, SimpleValue simpleValue, boolean nullable,
String columnName, InFlightMetadataCollector mappings) {
simpleValue.setTypeName(type);
@@ -2976,7 +2969,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param table The table name
* @param sessionFactoryBeanName the session factory bean name
*/
- protected void bindColumn(PersistentProperty property, PersistentProperty parentProperty,
+ private void bindColumn(PersistentProperty property, PersistentProperty parentProperty,
Column column, ColumnConfig cc, String path, Table table, String sessionFactoryBeanName) {
if (cc != null) {
@@ -3048,7 +3041,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
- protected void createKeyForProps(PersistentProperty grailsProp, String path, Table table,
+ private void createKeyForProps(PersistentProperty grailsProp, String path, Table table,
String columnName, List<?> propertyNames, String sessionFactoryBeanName) {
List<Column> keyList = new ArrayList<>();
keyList.add(new Column(columnName));
@@ -3064,7 +3057,7 @@ public class GrailsDomainBinder implements MetadataContributor {
createUniqueKeyForColumns(table, columnName, keyList);
}
- protected void createUniqueKeyForColumns(Table table, String columnName, List<Column> columns) {
+ private void createUniqueKeyForColumns(Table table, String columnName, List<Column> columns) {
Collections.reverse(columns);
UniqueKey uk = new UniqueKey();
@@ -3080,7 +3073,7 @@ public class GrailsDomainBinder implements MetadataContributor {
table.addUniqueKey(uk);
}
- protected void bindIndex(String columnName, Column column, ColumnConfig cc, Table table) {
+ private void bindIndex(String columnName, Column column, ColumnConfig cc, Table table) {
if (cc == null) {
return;
}
@@ -3106,7 +3099,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected String getColumnNameForPropertyAndPath(PersistentProperty grailsProp,
+ private String getColumnNameForPropertyAndPath(PersistentProperty grailsProp,
String path, ColumnConfig cc, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
@@ -3154,15 +3147,15 @@ public class GrailsDomainBinder implements MetadataContributor {
return columnName;
}
- protected boolean hasJoinKeyMapping(PropertyConfig c) {
+ private boolean hasJoinKeyMapping(PropertyConfig c) {
return c != null && c.getJoinTable() != null && c.getJoinTable().getKey() != null;
}
- protected boolean supportsJoinColumnMapping(PersistentProperty grailsProp) {
+ private boolean supportsJoinColumnMapping(PersistentProperty grailsProp) {
return grailsProp instanceof ManyToMany || isUnidirectionalOneToMany(grailsProp) || grailsProp instanceof Basic;
}
- protected String getDefaultColumnName(PersistentProperty property, String sessionFactoryBeanName) {
+ private String getDefaultColumnName(PersistentProperty property, String sessionFactoryBeanName) {
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
@@ -3198,14 +3191,14 @@ public class GrailsDomainBinder implements MetadataContributor {
return columnName;
}
- protected String getForeignKeyForPropertyDomainClass(PersistentProperty property,
+ private String getForeignKeyForPropertyDomainClass(PersistentProperty property,
String sessionFactoryBeanName) {
final String propertyName = NameUtils.decapitalize( property.getOwner().getName() );
NamingStrategy namingStrategy = getNamingStrategy(sessionFactoryBeanName);
return namingStrategy.propertyToColumnName(propertyName) + FOREIGN_KEY_SUFFIX;
}
- protected String getIndexColumnName(PersistentProperty property, String sessionFactoryBeanName) {
+ private String getIndexColumnName(PersistentProperty property, String sessionFactoryBeanName) {
PropertyConfig pc = getPropertyConfig(property);
if (pc != null && pc.getIndexColumn() != null && pc.getIndexColumn().getColumn() != null) {
return pc.getIndexColumn().getColumn();
@@ -3214,7 +3207,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return namingStrategy.propertyToColumnName(property.getName()) + UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME;
}
- protected String getIndexColumnType(PersistentProperty property, String defaultType) {
+ private String getIndexColumnType(PersistentProperty property, String defaultType) {
PropertyConfig pc = getPropertyConfig(property);
if (pc != null && pc.getIndexColumn() != null && pc.getIndexColumn().getType() != null) {
return getTypeName(property, pc.getIndexColumn(), getMapping(property.getOwner()));
@@ -3222,7 +3215,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return defaultType;
}
- protected String getMapElementName(PersistentProperty property, String sessionFactoryBeanName) {
+ private String getMapElementName(PersistentProperty property, String sessionFactoryBeanName) {
PropertyConfig pc = getPropertyConfig(property);
if (hasJoinTableColumnNameMapping(pc)) {
@@ -3233,7 +3226,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return namingStrategy.propertyToColumnName(property.getName()) + UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME;
}
- protected boolean hasJoinTableColumnNameMapping(PropertyConfig pc) {
+ private boolean hasJoinTableColumnNameMapping(PropertyConfig pc) {
return pc != null && pc.getJoinTable() != null && pc.getJoinTable().getColumn() != null && pc.getJoinTable().getColumn().getName() != null;
}
@@ -3246,7 +3239,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param column the column that corresponds to the property
* @param constrainedProperty the property's constraints
*/
- protected void bindStringColumnConstraints(Column column, PersistentProperty constrainedProperty) {
+ private void bindStringColumnConstraints(Column column, PersistentProperty constrainedProperty) {
final org.grails.datastore.mapping.config.Property mappedForm = constrainedProperty.getMapping().getMappedForm();
Number columnLength = mappedForm.getMaxSize();
List<?> inListValues = mappedForm.getInList();
@@ -3257,7 +3250,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected void bindNumericColumnConstraints(Column column, PersistentProperty constrainedProperty) {
+ private void bindNumericColumnConstraints(Column column, PersistentProperty constrainedProperty) {
bindNumericColumnConstraints(column, constrainedProperty, null);
}
@@ -3269,7 +3262,7 @@ public class GrailsDomainBinder implements MetadataContributor {
* @param property the property's constraints
* @param cc the column configuration
*/
- protected void bindNumericColumnConstraints(Column column, PersistentProperty property, ColumnConfig cc) {
+ private void bindNumericColumnConstraints(Column column, PersistentProperty property, ColumnConfig cc) {
int scale = org.hibernate.engine.jdbc.Size.DEFAULT_SCALE;
int precision = org.hibernate.engine.jdbc.Size.DEFAULT_PRECISION;
@@ -3320,7 +3313,7 @@ public class GrailsDomainBinder implements MetadataContributor {
/**
* @return a count of the digits in the specified number
*/
- protected int countDigits(Number number) {
+ private int countDigits(Number number) {
int numDigits = 0;
if (number != null) {
@@ -3335,7 +3328,7 @@ public class GrailsDomainBinder implements MetadataContributor {
/**
* @return the maximum length of the strings in the specified list
*/
- protected int getMaxSize(List<?> inListValues) {
+ private int getMaxSize(List<?> inListValues) {
int maxSize = 0;
for (Object inListValue : inListValues) {
@@ -3346,7 +3339,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return maxSize;
}
- protected void handleUniqueConstraint(PersistentProperty property, Column column, String path, Table table, String columnName, String sessionFactoryBeanName) {
+ private void handleUniqueConstraint(PersistentProperty property, Column column, String path, Table table, String columnName, String sessionFactoryBeanName) {
final PropertyConfig mappedForm = (PropertyConfig) property.getMapping().getMappedForm();
if (mappedForm.isUnique()) {
if (!mappedForm.isUniqueWithinGroup()) {
@@ -3360,19 +3353,19 @@ public class GrailsDomainBinder implements MetadataContributor {
}
- protected boolean isNotEmpty(String s) {
+ private boolean isNotEmpty(String s) {
return GrailsHibernateUtil.isNotEmpty(s);
}
- protected String qualify(String prefix, String name) {
+ private String qualify(String prefix, String name) {
return GrailsHibernateUtil.qualify(prefix, name);
}
- protected String unqualify(String qualifiedName) {
+ private String unqualify(String qualifiedName) {
return GrailsHibernateUtil.unqualify(qualifiedName);
}
- public MetadataBuildingContext getMetadataBuildingContext() {
+ private MetadataBuildingContext getMetadataBuildingContext() {
return metadataBuildingContext;
}
@@ -3387,10 +3380,10 @@ public class GrailsDomainBinder implements MetadataContributor {
private static final long serialVersionUID = -5540526942092611348L;
- protected ToMany property;
- protected InFlightMetadataCollector mappings;
- protected Collection collection;
- protected String sessionFactoryBeanName;
+ ToMany property;
+ InFlightMetadataCollector mappings;
+ Collection collection;
+ String sessionFactoryBeanName;
public GrailsCollectionSecondPass(ToMany property, InFlightMetadataCollector mappings,
Collection coll, String sessionFactoryBeanName) {
@@ -3405,7 +3398,7 @@ public class GrailsDomainBinder implements MetadataContributor {
createCollectionKeys();
}
- protected void createCollectionKeys() {
+ private void createCollectionKeys() {
collection.createAllKeys();
if (LOG.isDebugEnabled()) {
@@ -3422,7 +3415,7 @@ public class GrailsDomainBinder implements MetadataContributor {
}
}
- protected String columns(Value val) {
+ private String columns(Value val) {
StringBuilder columns = new StringBuilder();
Iterator<?> iter = val.getColumns().iterator();
while (iter.hasNext()) {
@@ -3489,22 +3482,22 @@ public class GrailsDomainBinder implements MetadataContributor {
*/
static abstract class CollectionType {
- protected final Class<?> clazz;
- protected final GrailsDomainBinder binder;
- protected final MetadataBuildingContext buildingContext;
+ private final Class<?> clazz;
+ private final GrailsDomainBinder binder;
+ private final MetadataBuildingContext buildingContext;
- protected CollectionType SET;
- protected CollectionType LIST;
- protected CollectionType BAG;
- protected CollectionType MAP;
- protected boolean initialized;
+ private CollectionType SET;
+ private CollectionType LIST;
+ private CollectionType BAG;
+ private CollectionType MAP;
+ private boolean initialized;
- protected final Map<Class<?>, CollectionType> INSTANCES = new HashMap<>();
+ private final Map<Class<?>, CollectionType> INSTANCES = new HashMap<>();
public abstract Collection create(ToMany property, PersistentClass owner,
String path, InFlightMetadataCollector mappings, String sessionFactoryBeanName) throws MappingException;
- protected CollectionType(Class<?> clazz, GrailsDomainBinder binder) {
+ private CollectionType(Class<?> clazz, GrailsDomainBinder binder) {
this.clazz = clazz;
this.binder = binder;
this.buildingContext = binder.getMetadataBuildingContext();
@@ -3515,7 +3508,7 @@ public class GrailsDomainBinder implements MetadataContributor {
return clazz.getName();
}
- protected void createInstances() {
+ private void createInstances() {
if (initialized) {
return;
diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContext.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContext.java
index 4c4387c368..c0d537eae3 100644
--- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContext.java
+++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContext.java
@@ -32,6 +32,9 @@ import org.grails.orm.hibernate.proxy.HibernateProxyHandler;
import org.springframework.validation.Errors;
import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Optional;
/**
* A Mapping context for Hibernate
@@ -187,6 +190,15 @@ public class HibernateMappingContext extends AbstractMappingContext {
return super.getPersistentEntity(name);
}
+ public Collection<HibernatePersistentEntity> getHibernatePersistentEntities() {
+ return Optional.ofNullable(persistentEntities)
+ .orElse(new ArrayList<>())
+ .stream()
+ .filter(HibernatePersistentEntity.class::isInstance)
+ .map(HibernatePersistentEntity.class::cast)
+ .toList();
+ }
+
static class HibernateEmbeddedPersistentEntity extends EmbeddedPersistentEntity {
private final ClassMapping<Mapping> classMapping;
public HibernateEmbeddedPersistentEntity(Class type, MappingContext ctx) {