boolean (@Nullable Method getter, @Nullable Method setter, @NotNull Configuration configuration) { if (getter == null || configuration.isAnnotatedAsTransient(getter)) { return false; } if (getter.getDeclaringClass() == AtomicReference.class) { return false; } if (setter == null) { // check hasStoreAnnotations to ensure that this addition will not lead to regression // (since there is a chance that there are some existing not-annotated list getters without setter) return (Collection.class.isAssignableFrom(getter.getReturnType()) || Map.class.isAssignableFrom(getter.getReturnType())) && configuration.hasStoreAnnotations(getter); } if (configuration.isAnnotatedAsTransient(setter) || !getter.getReturnType().equals(setter.getParameterTypes()[0])) { return false; } return true; }