This is an automated email from the ASF dual-hosted git repository.
jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push:
new ae36bf75 feat(#419): filter out static methods from records
ae36bf75 is described below
commit ae36bf750cf78b94d8cac5b54dfcfb1f321aff14
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Wed Jul 2 22:17:58 2025 +0200
feat(#419): filter out static methods from records
Signed-off-by: Jean-Louis Monteiro <[email protected]>
---
.../org/apache/johnzon/mapper/access/MethodAccessMode.java | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
index 79e07acc..4c8aeeca 100644
---
a/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
+++
b/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java
@@ -26,6 +26,7 @@ import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
import java.util.Collection;
import java.util.HashMap;
@@ -53,6 +54,7 @@ public class MethodAccessMode extends BaseAccessMode {
if (isRecord(clazz) || Meta.getAnnotation(clazz, JohnzonRecord.class)
!= null) {
readers.putAll(Stream.of(clazz.getMethods())
.filter(it -> it.getDeclaringClass() != Object.class &&
it.getParameterCount() == 0)
+ .filter(it -> !Modifier.isStatic(it.getModifiers()))
.filter(it -> !"toString".equals(it.getName()) &&
!"hashCode".equals(it.getName()))
.filter(it -> !isIgnored(it.getName()) &&
Meta.getAnnotation(it, JohnzonAny.class) == null)
.collect(toMap(m -> extractKey(m.getName(), m, null), it ->
new MethodReader(it, it.getGenericReturnType()))));
@@ -92,10 +94,10 @@ public class MethodAccessMode extends BaseAccessMode {
final Method writeMethod = descriptor.getWriteMethod();
if (writeMethod != null) {
writers.put(extractKey(descriptor.getName(), writeMethod,
descriptor.getReadMethod()),
- new MethodWriter(writeMethod,
writeMethod.getGenericParameterTypes()[0]));
+ new MethodWriter(writeMethod,
writeMethod.getGenericParameterTypes()[0]));
} else if (supportGetterAsWritter
- &&
Collection.class.isAssignableFrom(descriptor.getPropertyType())
- && descriptor.getReadMethod() != null) {
+ &&
Collection.class.isAssignableFrom(descriptor.getPropertyType())
+ && descriptor.getReadMethod() != null) {
final Method readMethod = descriptor.getReadMethod();
writers.put(extractKey(descriptor.getName(), readMethod,
null), new MethodGetterAsWriter(readMethod, readMethod.getGenericReturnType()));
}
@@ -169,8 +171,8 @@ public class MethodAccessMode extends BaseAccessMode {
@Override
public String toString() {
return "MethodDecoratedType{" +
- "method=" + method +
- '}';
+ "method=" + method +
+ '}';
}
}