code: private void gatherProperties(List<VariableElement> fields, Element element) {
  
      TypeElement typeElement = (TypeElement) element;
      TypeMirror superclass = typeElement.getSuperclass();
      Element mappedSuper = typeUtils.asElement(superclass);
      if (isMappedSuperOrInheritance(mappedSuper)) {
        gatherProperties(fields, mappedSuper);
      }
  
      List<VariableElement> allFields = ElementFilter.fieldsIn(element.getEnclosedElements());
      for (VariableElement field : allFields) {
        if (!ignoreField(field)) {
          fields.add(field);
        }
      }
    }
docs: Recursively gather all the fields (properties) for the given bean element.