code: private List<JField> getFields(List<JField> allFields, JClassType type) {
          JField[] fields = type.getFields();
          for (JField field : fields) {
              if (!field.isTransient() && !isXmlTransient(field)) {
                  allFields.add(field);
              }
          }
          try {
              JType objectType = find(Object.class, getLogger(), context);
              if (!objectType.equals(type)) {
                  JClassType superType = type.getSuperclass();
                  return getFields(allFields, superType);
              }
          } catch (UnableToCompleteException e) {
              // do nothing
          }
  
          return allFields;
      }
docs: Returns a list of all fields (non {@code transient} and not annotated with {@link XmlTransient}) in the
  supplied type and all super classes.
  
  @param allFields
  @param type
  @return