@Override
  protected List<String> getCommandLine(MySQLDatabaseExportInfo arg) throws IOException {
    List<String> cmd = MySQLToolScript.getMySQLToolCommandLine(this, arg);
    if (objects.isEmpty()) {
      // no dump
    } else if (!CommonUtils.isEmpty(arg.getTables())) {
      cmd.add(arg.getDatabase().getName());
      for (MySQLTableBase table : arg.getTables()) {
        cmd.add(table.getName());
      }
    } else {
      cmd.add(arg.getDatabase().getName());
    }

    return cmd;
  }
  @Override
  public void fillProcessParameters(List<String> cmd, MySQLDatabaseExportInfo arg)
      throws IOException {
    File dumpBinary =
        RuntimeUtils.getHomeBinary(
            getClientHome(), MySQLConstants.BIN_FOLDER, "mysqldump"); // $NON-NLS-1$
    String dumpPath = dumpBinary.getAbsolutePath();
    cmd.add(dumpPath);
    switch (method) {
      case LOCK_ALL_TABLES:
        cmd.add("--lock-all-tables"); // $NON-NLS-1$
        break;
      case ONLINE:
        cmd.add("--single-transaction"); // $NON-NLS-1$
        break;
    }

    if (noCreateStatements) {
      cmd.add("--no-create-info"); // $NON-NLS-1$
    } else {
      if (CommonUtils.isEmpty(arg.getTables())) {
        cmd.add("--routines"); // $NON-NLS-1$
      }
    }
    if (addDropStatements) cmd.add("--add-drop-table"); // $NON-NLS-1$
    if (disableKeys) cmd.add("--disable-keys"); // $NON-NLS-1$
    if (extendedInserts) {
      cmd.add("--extended-insert"); // $NON-NLS-1$
    } else {
      cmd.add("--skip-extended-insert"); // $NON-NLS-1$
    }
    if (binariesInHex) {
      cmd.add("--hex-blob"); // $NON-NLS-1$
    }
    if (dumpEvents) cmd.add("--events"); // $NON-NLS-1$
    if (comments) cmd.add("--comments"); // $NON-NLS-1$
  }