docs: private static List<Field> getFieldsList(final Class cls, final boolean declared) {
  		$.checkNotNull(cls);
  
  		final List<Field> allFields = new ArrayList<Field>();
  		Class currentClass = cls;
  		while (currentClass != null) {
  			final Field[] declaredFields = declared ? currentClass.getDeclaredFields() : currentClass.getFields();
  			for (Field field : declaredFields) {
  				allFields.add(field);
  			}
  			currentClass = currentClass.getSuperclass();
  		}
  		return allFields;
  	}