code: Object toSimpleValue(Class<?> genericType, Object element, TypeAdapters typeAdapters) {
          if (element == null) {
              return null;
          }
          log.info("Convert from " + element.getClass().getName() + " to " + genericType.getName());
          if (genericType.isEnum() && (element instanceof String)) {
              @SuppressWarnings({ "unchecked", "rawtypes" })
              Enum<?> enumValue = Enum.valueOf((Class<? extends Enum>) genericType, (String) element);
              return enumValue;
          }
          Converter converter = SIMPLE_VALUE_CONVERTERS.get(genericType.getName());
          if (converter != null) {
              return converter.convert(element);
          }
          if ((element instanceof String) && (typeAdapters != null)) {
              TypeAdapter<?> adapter = typeAdapters.getTypeAdapter(genericType);
              if (adapter != null) {
                  return adapter.deserialize((String) element);
              }
          }
          return element;
      }
docs: Convert a simple value object to specific type. e.g. Long to int, String to LocalDate.
  
  @param genericType Object type: int.class, String.class, Float.class, etc.
  @param element Value object.
  @return Converted object.