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

borinquenkid pushed a commit to branch chore/lint-proxy-package
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 06b346fcf7a18f0692fc4373a7e3914f1c824420
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Aug 15 18:41:39 2026 -0500

    Address IntelliJ inspections in ProxyInstanceMetaClass
    
    Make the never-reassigned session/key fields final, suppress the
    unchecked-generics warning inherent to MetaClass.getTheClass()'s raw
    Class return type, fill in missing Javadoc tag descriptions on
    invokeMethod, and switch to switch-expressions for getProperty/
    setProperty/getAttribute.
    
    Co-Authored-By: Claude Sonnet 5 <[email protected]>
---
 .../gorm/proxy/ProxyInstanceMetaClass.java         | 58 +++++++++-------------
 1 file changed, 24 insertions(+), 34 deletions(-)

diff --git 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/proxy/ProxyInstanceMetaClass.java
 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/proxy/ProxyInstanceMetaClass.java
index 36d5b841d6..03670514ce 100644
--- 
a/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/proxy/ProxyInstanceMetaClass.java
+++ 
b/grails-datamapping-core/src/main/groovy/org/grails/datastore/gorm/proxy/ProxyInstanceMetaClass.java
@@ -46,7 +46,7 @@ public class ProxyInstanceMetaClass extends 
DelegatingMetaClass {
     /**
      * Session to fetch from, if we need to.
      */
-    private Session session;
+    private final Session session;
     /**
      * The loaded instance we're proxying, or null if it hasn't been loaded.
      */
@@ -54,7 +54,7 @@ public class ProxyInstanceMetaClass extends 
DelegatingMetaClass {
     /**
      * The key of the object.
      */
-    private Serializable key;
+    private final Serializable key;
 
     public ProxyInstanceMetaClass(MetaClass delegate, Session session, 
Serializable key) {
         super(delegate);
@@ -66,6 +66,7 @@ public class ProxyInstanceMetaClass extends 
DelegatingMetaClass {
      * Load the target from the DB.
      * @return target.
      */
+    @SuppressWarnings("unchecked")
     public Object getProxyTarget() {
         if (proxyTarget == null) {
             proxyTarget = session.retrieve(getTheClass(), getKey());
@@ -82,9 +83,9 @@ public class ProxyInstanceMetaClass extends 
DelegatingMetaClass {
     /**
      * Handle method calls on our proxy.
      * @param o The proxy.
-     * @param methodName
-     * @param arguments
-     * @return
+     * @param methodName The name of the method being invoked.
+     * @param arguments The arguments passed to the method.
+     * @return The result of invoking the method, resolving the proxy target 
first if required.
      */
     @Override
     public Object invokeMethod(Object o, String methodName, Object[] 
arguments) {
@@ -118,44 +119,33 @@ public class ProxyInstanceMetaClass extends 
DelegatingMetaClass {
 
     @Override
     public Object getProperty(Object object, String property) {
-        if (property.equals("id")) {
-            return getKey();
-        } else if (property.equals("proxy")) {
-            return true;
-        } else if (property.equals("initialized")) {
-            return isProxyInitiated();
-        } else if (property.equals("target")) {
-            return getProxyTarget();
-        } else if (property.equals("metaClass")) {
-            return this;
-        } else if (property.equals("class") || property.equals("domainClass")) 
{
-            // return correct class only if loaded, otherwise hope for the best
-            return delegate.getProperty(isProxyInitiated() ? proxyTarget : 
object, property);
-        } else {
-            return delegate.getProperty(getProxyTarget(), property);
-        }
+        return switch (property) {
+            case "id" -> getKey();
+            case "proxy" -> true;
+            case "initialized" -> isProxyInitiated();
+            case "target" -> getProxyTarget();
+            case "metaClass" -> this;
+            case "class", "domainClass" ->
+                // return correct class only if loaded, otherwise hope for the 
best
+                delegate.getProperty(isProxyInitiated() ? proxyTarget : 
object, property);
+            default -> delegate.getProperty(getProxyTarget(), property);
+        };
     }
 
     @Override
     public void setProperty(Object object, String property, Object newValue) {
-        boolean resolveTarget = true;
-        if (property.equals("metaClass") && (newValue == null || newValue 
instanceof MetaClass)) {
-            resolveTarget = false;
-        }
+        boolean resolveTarget = !property.equals("metaClass") || (newValue != 
null && !(newValue instanceof MetaClass));
         delegate.setProperty(resolveTarget ? getProxyTarget() : object, 
property, newValue);
     }
 
     @Override
     public Object getAttribute(Object object, String attribute) {
-        if (attribute.equals("id")) {
-            return getKey();
-        } else if (attribute.equals("initialized")) {
-            return isProxyInitiated();
-        } else if (attribute.equals("target")) {
-            return getProxyTarget();
-        } else {
-            return delegate.getAttribute(getProxyTarget(), attribute);
-        }
+        return switch (attribute) {
+            case "id" -> getKey();
+            case "initialized" -> isProxyInitiated();
+            case "target" -> getProxyTarget();
+            default -> delegate.getAttribute(getProxyTarget(), attribute);
+        };
     }
 
     @Override

Reply via email to