code: protected String getParameterString(Map<String, String> parameters,
                                          Class<? extends EndpointConfiguration> endpointConfigurationType) {
          StringBuilder paramString = new StringBuilder();
  
          for (Map.Entry<String, String> parameterEntry : parameters.entrySet()) {
              Field field = ReflectionUtils.findField(endpointConfigurationType, parameterEntry.getKey());
  
              if (field == null) {
                  if (paramString.length() == 0) {
                      paramString.append("?").append(parameterEntry.getKey());
                      if (parameterEntry.getValue() != null) {
                          paramString.append("=").append(parameterEntry.getValue());
                      }
                  } else {
                      paramString.append("&").append(parameterEntry.getKey());
                      if (parameterEntry.getValue() != null) {
                          paramString.append("=").append(parameterEntry.getValue());
                      }
                  }
              }
          }
  
          return paramString.toString();
      }
docs: Filters non endpoint configuration parameters from parameter list and puts them
  together as parameters string. According to given endpoint configuration type only non
  endpoint configuration settings are added to parameter string.
  
  @param parameters
  @param endpointConfigurationType
  @return