public IdentityConfigurationBuilder readIDMConfigurationFromIDMType(IDMType idmType) {
    IdentityConfigurationBuilder idmConfigBuilder = new IdentityConfigurationBuilder();

    Builder<?> currentBuilder = idmConfigBuilder;

    for (ConfigBuilderMethodType configBuilderMethodType : idmType.getBuilderMethods()) {
      String methodId = configBuilderMethodType.getMethodId();
      Map<String, String> methodParams = configBuilderMethodType.getMethodParameters();
      Method builderMethod = getBuilderMethod(currentBuilder.getClass(), methodId, methodParams);

      Object[] parameters = getMethodParameters(builderMethod, methodParams);
      currentBuilder =
          Reflections.invokeMethod(builderMethod, Builder.class, currentBuilder, parameters);
    }

    return idmConfigBuilder;
  }