Skip to content

Commit ae36bf7

Browse files
committed
feat(#419): filter out static methods from records
Signed-off-by: Jean-Louis Monteiro <jlmonteiro@tomitribe.com>
1 parent a030a3e commit ae36bf7

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

johnzon-mapper/src/main/java/org/apache/johnzon/mapper/access/MethodAccessMode.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.beans.PropertyDescriptor;
2727
import java.lang.annotation.Annotation;
2828
import java.lang.reflect.Method;
29+
import java.lang.reflect.Modifier;
2930
import java.lang.reflect.Type;
3031
import java.util.Collection;
3132
import java.util.HashMap;
@@ -53,6 +54,7 @@ public Map<String, Reader> doFindReaders(final Class<?> clazz) {
5354
if (isRecord(clazz) || Meta.getAnnotation(clazz, JohnzonRecord.class) != null) {
5455
readers.putAll(Stream.of(clazz.getMethods())
5556
.filter(it -> it.getDeclaringClass() != Object.class && it.getParameterCount() == 0)
57+
.filter(it -> !Modifier.isStatic(it.getModifiers()))
5658
.filter(it -> !"toString".equals(it.getName()) && !"hashCode".equals(it.getName()))
5759
.filter(it -> !isIgnored(it.getName()) && Meta.getAnnotation(it, JohnzonAny.class) == null)
5860
.collect(toMap(m -> extractKey(m.getName(), m, null), it -> new MethodReader(it, it.getGenericReturnType()))));
@@ -92,10 +94,10 @@ public Map<String, Writer> doFindWriters(final Class<?> clazz) {
9294
final Method writeMethod = descriptor.getWriteMethod();
9395
if (writeMethod != null) {
9496
writers.put(extractKey(descriptor.getName(), writeMethod, descriptor.getReadMethod()),
95-
new MethodWriter(writeMethod, writeMethod.getGenericParameterTypes()[0]));
97+
new MethodWriter(writeMethod, writeMethod.getGenericParameterTypes()[0]));
9698
} else if (supportGetterAsWritter
97-
&& Collection.class.isAssignableFrom(descriptor.getPropertyType())
98-
&& descriptor.getReadMethod() != null) {
99+
&& Collection.class.isAssignableFrom(descriptor.getPropertyType())
100+
&& descriptor.getReadMethod() != null) {
99101
final Method readMethod = descriptor.getReadMethod();
100102
writers.put(extractKey(descriptor.getName(), readMethod, null), new MethodGetterAsWriter(readMethod, readMethod.getGenericReturnType()));
101103
}
@@ -169,8 +171,8 @@ public boolean isNillable(final boolean global) {
169171
@Override
170172
public String toString() {
171173
return "MethodDecoratedType{" +
172-
"method=" + method +
173-
'}';
174+
"method=" + method +
175+
'}';
174176
}
175177
}
176178

0 commit comments

Comments
 (0)