protected FieldComparator(final Class<?> beanClass) { int i = 0; Class<?> clazz = beanClass; while (clazz != null && clazz != Object.class) { for (final Field f : Reflection.getDeclaredFields(clazz)) { final String name = f.getName(); if (!fields.containsKey(name)) { fields.put(name, Integer.valueOf(++i)); } } for (final Method m : clazz.getDeclaredMethods()) { final String name = getPropertyName(m); if (name != null && !name.isEmpty()) { if (!fields.containsKey(name)) { fields.put(name, Integer.valueOf(++i)); } } } clazz = clazz.getSuperclass(); } }
@Override public Map<String, MetadataBuilder.ForContainer<Field>> getFields(Meta<Class<T>> ignored) { final Field[] declaredFields = Reflection.getDeclaredFields(meta.getHost()); if (declaredFields.length == 0) { return Collections.emptyMap(); } return Stream.of(declaredFields).filter(f -> !(Modifier.isStatic(f.getModifiers()) || f.isSynthetic())) .collect( Collectors.toMap(Field::getName, f -> new ReflectionBuilder.ForContainer<>(new Meta.ForField(f)))); }
@Override public Map<String, MetadataBuilder.ForContainer<Field>> getFields(Meta<Class<T>> ignored) { final Field[] declaredFields = Reflection.getDeclaredFields(meta.getHost()); if (declaredFields.length == 0) { return Collections.emptyMap(); } return Stream.of(declaredFields).filter(f -> !(Modifier.isStatic(f.getModifiers()) || f.isSynthetic())) .collect( Collectors.toMap(Field::getName, f -> new ReflectionBuilder.ForContainer<>(new Meta.ForField(f)))); }