Comparator<String> fieldComparator = accessMode.fieldComparator(inClazz); fieldComparator = fieldComparator == null ? config.getAttributeOrder() : fieldComparator; final Map<String, Setter> setters = fieldComparator == null ? newOrderedMap(Setter.class) : new TreeMap<>(fieldComparator); final Map<String, AccessMode.Reader> readers = accessMode.findReaders(clazz); final Map<String, AccessMode.Writer> writers = accessMode.findWriters(clazz); final Method anyGetter = accessMode.findAnyGetter(clazz); final ClassMapping mapping = new ClassMapping( clazz, accessMode.findFactory(clazz), getters, setters, accessMode.findAdapter(clazz), accessMode.findReader(clazz), accessMode.findWriter(clazz), anyGetter != null ? new Getter( new MethodAccessMode.MethodReader(anyGetter, anyGetter.getReturnType()), false,false, false, false, true, null, null, -1, null) : null, accessMode.findAnySetter(clazz), Map.class.isAssignableFrom(clazz) ? accessMode.findMapAdder(clazz) : null); accessMode.afterParsed(clazz);
@Override public Map<String, Reader> doFindReaders(final Class<?> clazz) { if (Stream.of(clazz.getInterfaces()).anyMatch(it -> it.getName().startsWith("routines.system."))) { final Map<String, Reader> readers = fields.findReaders(clazz); if (!readers.isEmpty()) { return readers; } // else let's try the methods } return super.doFindReaders(clazz); } }
@Override public Map<String, Writer> findWriters(final Class<?> clazz) { final Map<String, Writer> writers = delegate.findWriters(clazz);
return constructor == null && factory == null ? delegate.findFactory(clazz) : ( constructor != null ? new Factory() {
@Override public Map<String, Reader> findReaders(final Class<?> clazz) { final Map<String, Reader> readers = delegate.findReaders(clazz);
@Override public Map<String, Writer> findWriters(final Class<?> clazz) { final Map<String, Writer> writers = delegate.findWriters(clazz);
return constructor == null && factory == null ? delegate.findFactory(clazz) : ( constructor != null ? new Factory() {
Comparator<String> fieldComparator = accessMode.fieldComparator(inClazz); fieldComparator = fieldComparator == null ? config.getAttributeOrder() : fieldComparator; final Map<String, Setter> setters = fieldComparator == null ? newOrderedMap(Setter.class) : new TreeMap<>(fieldComparator); final Map<String, AccessMode.Reader> readers = accessMode.findReaders(clazz); final Map<String, AccessMode.Writer> writers = accessMode.findWriters(clazz); final Method anyGetter = accessMode.findAnyGetter(clazz); final ClassMapping mapping = new ClassMapping( clazz, accessMode.findFactory(clazz), getters, setters, accessMode.findAdapter(clazz), accessMode.findReader(clazz), accessMode.findWriter(clazz), anyGetter != null ? new Getter( new MethodAccessMode.MethodReader(anyGetter, anyGetter.getReturnType()), false,false, false, false, true, null, null, -1, null) : null, accessMode.findAnySetter(clazz), Map.class.isAssignableFrom(clazz) ? accessMode.findMapAdder(clazz) : null); accessMode.afterParsed(clazz);
@Override public Map<String, Reader> findReaders(final Class<?> clazz) { final Map<String, Reader> readers = delegate.findReaders(clazz);