code: public static QueryParameters updateTypes(QueryParameters original, QueryParameters source) {
          QueryParameters updatedParams = new QueryParameters(original);
          Integer position = null;
          String originalKey = null;
  
          if (source != null) {
              for (String sourceKey : source.keySet()) {
                  position = source.getFirstPosition(sourceKey);
  
                  if (position != null) {
                      originalKey = original.getNameByPosition(position);
                      if (updatedParams.containsKey(originalKey) == true) {
                          updatedParams.updateType(originalKey, source.getType(sourceKey));
                      }
                  }
              }
          }
  
          return updatedParams;
      }
docs: Clones @original and updates it's types - taken from @source.
  
  @param original QueryParameters which would be updated
  @param source   QueryParameters types of which would be read
  @return updated clone on @original with updated types