docs: public boolean createJob(String slurmScript, String heronExec,
                             String[] commandArgs, String topologyWorkingDirectory,
                             long containers, String partition) {
      // get the command to run the job on Slurm cluster
      List<String> slurmCmd = slurmCommand(slurmScript, heronExec, containers, partition);
  
      // change the empty strings of command args to "", because batch
      // doesn't recognize space as an arguments
      List<String> transformedArgs = new ArrayList<>();
      for (int i = 0; i < commandArgs.length; i++) {
        String arg = commandArgs[i];
        if (arg == null || arg.trim().equals("")) {
          transformedArgs.add("\"\"");
        } else {
          transformedArgs.add(arg);
        }
      }
  
      // add the args to the command
      slurmCmd.addAll(transformedArgs);
      String[] slurmCmdArray = slurmCmd.toArray(new String[0]);
      LOG.log(Level.INFO, "Executing job [" + topologyWorkingDirectory + "]:",
          Arrays.toString(slurmCmdArray));
      StringBuilder stderr = new StringBuilder();
      boolean ret = runProcess(topologyWorkingDirectory, slurmCmdArray, stderr);
      return ret;
    }