@Override
  protected SpringOptions getOptions() {
    parse(optionContextFile, optionExecutable, optionDataSourceName);

    final SpringOptions options = new SpringOptions();
    options.setContextFileName(optionContextFile.getValue());
    options.setExecutableName(optionExecutable.getValue());
    options.setDataSourceName(optionDataSourceName.getValue());

    return options;
  }
  @Override
  public DatabaseConnectionOptions getOptions() throws SchemaCrawlerException {
    parse(
        new Option[] {
          optionDriver, optionConnectionUrl, optionUser, optionPassword,
        });

    final DatabaseConnectionOptions conenctionOptions;
    if (optionDriver.isFound() && optionConnectionUrl.isFound()) {
      final String jdbcDriverClassName = optionDriver.getValue();
      final String connectionUrl = optionConnectionUrl.getValue();
      if (Utility.isBlank(jdbcDriverClassName) || Utility.isBlank(connectionUrl)) {
        conenctionOptions = null;
      } else {
        conenctionOptions = new DatabaseConnectionOptions(jdbcDriverClassName, connectionUrl);
        conenctionOptions.setUser(optionUser.getValue());
        conenctionOptions.setPassword(optionPassword.getValue());
      }
    } else {
      conenctionOptions = null;
    }
    return conenctionOptions;
  }