public FieldAndMethodAccessMode(final boolean useConstructor, final boolean acceptHiddenConstructor, final boolean useGettersAsWriter) { super(useConstructor, acceptHiddenConstructor); this.fields = new FieldAccessMode(useConstructor, acceptHiddenConstructor); this.methods = new MethodAccessMode(useConstructor, acceptHiddenConstructor, useGettersAsWriter); }
@Override // remove not indexable data public Map<String, Reader> doFindReaders(final Class<?> clazz) { final Map<String, Reader> map = super.doFindReaders(clazz); for (final String entry : new ArrayList<>(map.keySet())) { if (entry.toLowerCase(ENGLISH).contains("password") || entry.toLowerCase(ENGLISH).contains("pwd") || entry.toLowerCase(ENGLISH).contains("secret")) { map.remove(entry); } } return map; } })
@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> fieldsReaders = this.fields.findReaders(clazz); final Map<String, Reader> methodReaders = this.methods.findReaders(clazz);
@Override public Map<String, Writer> doFindWriters(final Class<?> clazz) { final Map<String, Writer> fieldWriters = this.fields.findWriters(clazz); final Map<String, Writer> metodWriters = this.methods.findWriters(clazz);
@Override public Map<String, Reader> doFindReaders(final Class<?> clazz) { final Map<String, Reader> fieldsReaders = this.fields.findReaders(clazz); final Map<String, Reader> methodReaders = this.methods.findReaders(clazz);
@Override public Map<String, Writer> doFindWriters(final Class<?> clazz) { final Map<String, Writer> fieldWriters = this.fields.findWriters(clazz); final Map<String, Writer> metodWriters = this.methods.findWriters(clazz);
@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; }
public FieldAndMethodAccessMode(final boolean useConstructor, final boolean acceptHiddenConstructor, final boolean useGettersAsWriter) { super(useConstructor, acceptHiddenConstructor); this.fields = new FieldAccessMode(useConstructor, acceptHiddenConstructor); this.methods = new MethodAccessMode(useConstructor, acceptHiddenConstructor, useGettersAsWriter); }
@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; }
accessMode = new FieldAccessMode(supportConstructors, supportHiddenAccess); } else if ("method".equalsIgnoreCase(accessModeName)) { accessMode = new MethodAccessMode(supportConstructors, supportHiddenAccess, true); } else if ("strict-method".equalsIgnoreCase(accessModeName)) { accessMode = new MethodAccessMode(supportConstructors, supportHiddenAccess, false); } else if ("both".equalsIgnoreCase(accessModeName) || accessModeName == null) { accessMode = new FieldAndMethodAccessMode(supportConstructors, supportHiddenAccess, useGetterForCollections);
@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; }
accessMode = new FieldAccessMode(supportConstructors, supportHiddenAccess); } else if ("method".equalsIgnoreCase(accessModeName)) { accessMode = new MethodAccessMode(supportConstructors, supportHiddenAccess, true); } else if ("strict-method".equalsIgnoreCase(accessModeName)) { accessMode = new MethodAccessMode(supportConstructors, supportHiddenAccess, false); } else if ("both".equalsIgnoreCase(accessModeName) || accessModeName == null) { accessMode = new FieldAndMethodAccessMode(supportConstructors, supportHiddenAccess, useGetterForCollections);