This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 03aaad881355ea0939b14850238488670d061064
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Mar 7 13:03:00 2026 -0600

    hibernate7: more Codenarc
---
 .../hibernate/HibernateMappingBuilder.groovy       |  5 +-
 .../hibernate/HibernateMappingKeyword.groovy       | 75 ++++++++++++++++++++++
 .../mapping/HibernateMappingBuilderTests.groovy    | 20 +++---
 3 files changed, 90 insertions(+), 10 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
index 1ecfed48dd..8ad9b0fd05 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy
@@ -462,9 +462,10 @@ class HibernateMappingBuilder implements 
MappingConfigurationBuilder<Mapping, Pr
         Object firstArg = hasArgs ? argsArray[0] : null
         Object lastArg = argc > 0 ? argsArray[argc - 1] : null
 
-        if (name == 'user-type' && hasArgs && firstArg instanceof Map) {
+        HibernateMappingKeyword keyword = 
HibernateMappingKeyword.fromString(name)
+        if (keyword == HibernateMappingKeyword.USER_TYPE && hasArgs && 
firstArg instanceof Map) {
             hibernateCustomUserType((Map<String, Object>) firstArg)
-        } else if (name == 'importFrom' && hasArgs && firstArg instanceof 
Class) {
+        } else if (keyword == HibernateMappingKeyword.IMPORT_FROM && hasArgs 
&& firstArg instanceof Class) {
             List<Closure> constraintsToImport = 
ClassPropertyFetcher.getStaticPropertyValuesFromInheritanceHierarchy(
                 (Class) firstArg, GormProperties.CONSTRAINTS, Closure)
             if (constraintsToImport) {
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy
new file mode 100644
index 0000000000..c745f28605
--- /dev/null
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingKeyword.groovy
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.grails.orm.hibernate.cfg.domainbinding.hibernate
+
+import groovy.transform.CompileStatic
+
+/**
+ * Enum representing the supported keywords in the Hibernate ORM mapping DSL.
+ *
+ * @author walter.duquedeestrada
+ * @since 7.0
+ */
+@CompileStatic
+enum HibernateMappingKeyword {
+    INCLUDES('includes'),
+    HIBERNATE_CUSTOM_USER_TYPE('hibernateCustomUserType'),
+    TABLE('table'),
+    DISCRIMINATOR('discriminator'),
+    AUTO_IMPORT('autoImport'),
+    SORT('sort'),
+    AUTOWIRE('autowire'),
+    DYNAMIC_UPDATE('dynamicUpdate'),
+    DYNAMIC_INSERT('dynamicInsert'),
+    BATCH_SIZE('batchSize'),
+    ORDER('order'),
+    AUTO_TIMESTAMP('autoTimestamp'),
+    VERSION('version'),
+    TENANT_ID('tenantId'),
+    CACHE('cache'),
+    TABLE_PER_HIERARCHY('tablePerHierarchy'),
+    TABLE_PER_SUBCLASS('tablePerSubclass'),
+    TABLE_PER_CONCRETE_CLASS('tablePerConcreteClass'),
+    ID('id'),
+    PROPERTY('property'),
+    COLUMNS('columns'),
+    DATASOURCE('datasource'),
+    DATASOURCES('datasources'),
+    COMMENT('comment'),
+    USER_TYPE('user-type'),
+    IMPORT_FROM('importFrom')
+
+    private final String keyword
+
+    HibernateMappingKeyword(String keyword) {
+        this.keyword = keyword
+    }
+
+    String getKeyword() {
+        return keyword
+    }
+
+    @Override
+    String toString() {
+        return keyword
+    }
+
+    private static final Map<String, HibernateMappingKeyword> KEYWORDS = 
values().collectEntries { [it.keyword, it] }
+
+    static HibernateMappingKeyword fromString(String name) {
+        return KEYWORDS[name]
+    }
+}
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
index 2e34e104fa..efa5a72013 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateMappingBuilderTests.groovy
@@ -18,6 +18,8 @@
  */
 package grails.gorm.hibernate.mapping
 
+import java.sql.Clob
+
 import org.grails.orm.hibernate.cfg.CompositeIdentity
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateMappingBuilder
 import org.grails.orm.hibernate.cfg.PropertyConfig
@@ -658,11 +660,13 @@ class HibernateMappingBuilderTests {
             version false
             id composite:['one','two'], compositeClass:HibernateMappingBuilder
         }
+        def compositeId = mapping.identity
+
+        assert compositeId instanceof CompositeIdentity
 
-        assert mapping.identity instanceof CompositeIdentity
-        assertEquals "one", mapping.identity.propertyNames[0]
-        assertEquals "two", mapping.identity.propertyNames[1]
-        assertEquals HibernateMappingBuilder, mapping.identity.compositeClass
+        assertEquals( "one",  compositeId.propertyNames[0])
+        assertEquals "two", compositeId.propertyNames[1]
+        assertEquals HibernateMappingBuilder, compositeId.compositeClass
     }
 
     @Test
@@ -705,7 +709,7 @@ class HibernateMappingBuilderTests {
                 firstName  column:'First_Name',
                         lazy:true,
                         unique:true,
-                        type: java.sql.Clob,
+                        type: Clob,
                         length:255,
                         index:'foo',
                         sqlType: 'text'
@@ -717,7 +721,7 @@ class HibernateMappingBuilderTests {
         assertEquals "First_Name",mapping.columns.firstName.column
         assertTrue mapping.columns.firstName.lazy
         assertTrue mapping.columns.firstName.unique
-        assertEquals java.sql.Clob,mapping.columns.firstName.type
+        assertEquals Clob,mapping.columns.firstName.type
         assertEquals 255,mapping.columns.firstName.length
         assertEquals 'foo',mapping.columns.firstName.getIndexName()
         assertEquals "text",mapping.columns.firstName.sqlType
@@ -733,7 +737,7 @@ class HibernateMappingBuilderTests {
             firstName  column:'First_Name',
                     lazy:true,
                     unique:true,
-                    type: java.sql.Clob,
+                    type: Clob,
                     length:255,
                     index:'foo',
                     sqlType: 'text'
@@ -744,7 +748,7 @@ class HibernateMappingBuilderTests {
         assertEquals "First_Name",mapping.columns.firstName.column
         assertTrue mapping.columns.firstName.lazy
         assertTrue mapping.columns.firstName.unique
-        assertEquals java.sql.Clob,mapping.columns.firstName.type
+        assertEquals Clob,mapping.columns.firstName.type
         assertEquals 255,mapping.columns.firstName.length
         assertEquals 'foo',mapping.columns.firstName.getIndexName()
         assertEquals "text",mapping.columns.firstName.sqlType

Reply via email to