@Override public Map<String, Reader> doFindReaders(final Class<?> clazz) { final Map<String, Reader> readers = new HashMap<String, Reader>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); for (final PropertyDescriptor descriptor : propertyDescriptors) { final Method readMethod = descriptor.getReadMethod(); if (readMethod != null && readMethod.getDeclaringClass() != Object.class) { if (isIgnored(descriptor.getName()) || Meta.getAnnotation(readMethod, JohnzonAny.class) != null) { continue; } readers.put(extractKey(descriptor.getName(), readMethod, null), new MethodReader(readMethod, readMethod.getGenericReturnType())); } } return readers; }
@Override public Map<String, Reader> doFindReaders(final Class<?> clazz) { final Map<String, Reader> readers = new HashMap<String, Reader>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); for (final PropertyDescriptor descriptor : propertyDescriptors) { final Method readMethod = descriptor.getReadMethod(); if (readMethod != null && readMethod.getDeclaringClass() != Object.class) { if (isIgnored(descriptor.getName()) || Meta.getAnnotation(readMethod, JohnzonAny.class) != null) { continue; } readers.put(extractKey(descriptor.getName(), readMethod, null), new MethodReader(readMethod, readMethod.getGenericReturnType())); } } return readers; }
@Override public Map<String, Writer> doFindWriters(final Class<?> clazz) { final Map<String, Writer> writers = new HashMap<String, Writer>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); for (final PropertyDescriptor descriptor : propertyDescriptors) { if (descriptor.getPropertyType() == Class.class || isIgnored(descriptor.getName())) { continue; } final Method writeMethod = descriptor.getWriteMethod(); if (writeMethod != null) { writers.put(extractKey(descriptor.getName(), writeMethod, descriptor.getReadMethod()), new MethodWriter(writeMethod, writeMethod.getGenericParameterTypes()[0])); } else if (supportGetterAsWritter && 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())); } } return writers; }
@Override public Map<String, Writer> doFindWriters(final Class<?> clazz) { final Map<String, Writer> writers = new HashMap<String, Writer>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); for (final PropertyDescriptor descriptor : propertyDescriptors) { if (descriptor.getPropertyType() == Class.class || isIgnored(descriptor.getName())) { continue; } final Method writeMethod = descriptor.getWriteMethod(); if (writeMethod != null) { writers.put(extractKey(descriptor.getName(), writeMethod, descriptor.getReadMethod()), new MethodWriter(writeMethod, writeMethod.getGenericParameterTypes()[0])); } else if (supportGetterAsWritter && 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())); } } return writers; }