code: public ToConverter getToConverter(Class toClass, Class domainClass) throws JTransfoException {
          ToConverter converter = withPreConverter(toClass);
  
          List<SyntheticField> domainFields = reflectionHelper.getSyntheticFields(domainClass);
          for (Field field : reflectionHelper.getFields(toClass)) {
              boolean isTransient = Modifier.isTransient(field.getModifiers());
              List<NotMapped> notMapped = reflectionHelper.getAnnotationWithMeta(field, NotMapped.class);
              if (!isTransient && (0 == notMapped.size())) {
                  List<MappedBy> mappedBies = reflectionHelper.getAnnotationWithMeta(field, MappedBy.class);
                  if (mappedBies.size() > 1) {
                      throw new JTransfoException("Field " + field.getName() + " on type " +
                              field.getDeclaringClass().getName() +
                              " MappedBy is ambiguous, check your meta-annotations.");
                  }
                  MappedBy mappedBy = null;
                  if (1 == mappedBies.size()) {
                      mappedBy = mappedBies.get(0);
                  }
  
                  boolean isStatic = (0 != (field.getModifiers() & Modifier.STATIC));
                  if (0 != mappedBies.size() || !isStatic) {
                      buildConverters(field, domainFields, domainClass, converter, mappedBy);
                  }
              }
          }
  
          addPostConverter(converter, toClass);
          return converter;
      }
docs: Build the descriptor for conversion between given object types.
  
  @param toClass transfer object class, contains the annotations for the conversion
  @param domainClass domain class as other side of conversion
  @return conversion descriptor
  @throws JTransfoException cannot build converter