code: public QueueReference build(Map<String, String> params, Map<String, File> fileParams, boolean crumbFlag) throws IOException {
          String qs = params.entrySet().stream()
                  .map(s -> s.getKey() + "=" + s.getValue())
                  .collect(Collectors.joining("&"));
  //        String qs = join(Collections2.transform(params.entrySet(), new MapEntryToQueryStringPair()), "&");
          ExtractHeader location = client.post(url + "buildWithParameters?" + qs,null, ExtractHeader.class, fileParams, crumbFlag);
          return new QueueReference(location.getLocation());
      }
docs: Trigger a parameterized build with file parameters and crumbFlag
  
  @param params the job parameters
  @param fileParams the job file parameters
  @param crumbFlag determines whether crumb flag is used
  @return {@link QueueReference} for further analysis of the queued build.
  @throws IOException in case of an error.