# HG changeset patch # User František Kučera # Date 1388093978 -3600 # Node ID a8444f6a54f309d65321002a9a9e6bc5db0adbb0 # Parent d32fd50d3c2cc0b5b28451a58ddffdde115d37fd allow multiple databases connection test in --test-connection diff -r d32fd50d3c2c -r a8444f6a54f3 java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java Thu Dec 26 22:32:06 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java Thu Dec 26 22:39:38 2013 +0100 @@ -18,14 +18,15 @@ package info.globalcode.sql.dk; import static info.globalcode.sql.dk.Functions.isNotEmpty; -import static info.globalcode.sql.dk.Functions.isEmpty; import static info.globalcode.sql.dk.Functions.equalz; import info.globalcode.sql.dk.InfoLister.InfoType; import java.io.OutputStream; import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @@ -39,7 +40,7 @@ public static final String DEFAULT_NAME_SUFFIX = "(?=([^\\w]|$))"; private String sql; private String databaseName; - private String databaseNameToTest; + private Set databaseNameToTest = new HashSet<>(); private String namePrefix = DEFAULT_NAME_PREFIX; private String nameSuffix = DEFAULT_NAME_SUFFIX; private String formatterName; @@ -84,7 +85,7 @@ if (!equalz(nameSuffix, DEFAULT_NAME_SUFFIX)) { e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name suffix if just showing info.")); } - if (showInfo.contains(InfoType.CONNECTION) && isEmpty(databaseNameToTest, false)) { + if (showInfo.contains(InfoType.CONNECTION) && databaseNameToTest.isEmpty()) { e.addProblem(new InvalidOptionsException.OptionProblem("Please specify which database should be tested.")); } } @@ -210,12 +211,12 @@ return showInfo; } - public String getDatabaseNameToTest() { + public Set getDatabaseNameToTest() { return databaseNameToTest; } - public void setDatabaseNameToTest(String databaseNameToTest) { - this.databaseNameToTest = databaseNameToTest; + public void addDatabaseNameToTest(String databaseNameToTest) { + this.databaseNameToTest.add(databaseNameToTest); } public SQLCommand getSQLCommand() { diff -r d32fd50d3c2c -r a8444f6a54f3 java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Thu Dec 26 22:32:06 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Thu Dec 26 22:39:38 2013 +0100 @@ -120,7 +120,7 @@ break; case Tokens.INFO_CONNECTION: options.addShowInfo(InfoType.CONNECTION); - options.setDatabaseNameToTest(fetchNext(args, ++i)); + options.addDatabaseNameToTest(fetchNext(args, ++i)); break; default: throw new CLIParserException("Unknown option: " + arg); diff -r d32fd50d3c2c -r a8444f6a54f3 java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java --- a/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java Thu Dec 26 22:32:06 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java Thu Dec 26 22:39:38 2013 +0100 @@ -61,7 +61,7 @@ for (InfoType infoType : commands) { switch (infoType) { - // only these needs formatted output + // only these need formatted output case CONNECTION: case DATABASES: case FORMATTERS: @@ -135,14 +135,13 @@ public void testConnection() throws FormatterException, ConfigurationException { ColumnsHeader header = constructHeader( new HeaderField("database_name", SQLType.VARCHAR), - new HeaderField("configured", SQLType.VARCHAR), - new HeaderField("connected", SQLType.VARCHAR)); + new HeaderField("configured", SQLType.BOOLEAN), + new HeaderField("connected", SQLType.BOOLEAN)); List data = new ArrayList<>(); - /** TODO: support multiple DB to test */ - String dbName = options.getDatabaseNameToTest(); - - data.add(testConnection(dbName)); + for (String dbName : options.getDatabaseNameToTest()) { + data.add(testConnection(dbName)); + } printTable(formatter, header, data); }