# HG changeset patch # User František Kučera # Date 1387204142 -3600 # Node ID bbd335b5410cc6c26a388464c53a2bde5ca4200e # Parent 189b1260b942ba4a48426ae0f11daab94b7ced77 show info basics: list databases + test connection diff -r 189b1260b942 -r bbd335b5410c java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java Mon Dec 16 15:15:32 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java Mon Dec 16 15:29:02 2013 +0100 @@ -1,6 +1,7 @@ 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 java.util.ArrayList; import java.util.Collection; @@ -16,6 +17,7 @@ public static final String DEFAULT_NAME_PREFIX = ":"; private String sql; private String databaseName; + private String databaseNameToTest; private String namePrefix = DEFAULT_NAME_PREFIX; private String formatterName; private boolean batch; @@ -34,7 +36,9 @@ VERSION, LICENSE, FORMATTERS, - TYPES + TYPES, + DATABASES, + CONNECTION } public enum COMMAND_TYPE { @@ -77,6 +81,9 @@ if (!equalz(namePrefix, DEFAULT_NAME_PREFIX)) { e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name prefix if just showing info.")); } + if (showInfo.contains(INFO_TYPE.CONNECTION) && isEmpty(databaseNameToTest, false)) { + e.addProblem(new InvalidOptionsException.OptionProblem("Please specify which database should be tested.")); + } } if (!namedParameters.isEmpty() && !numberedParameters.isEmpty()) { @@ -182,4 +189,12 @@ public EnumSet getShowInfo() { return showInfo; } + + public String getDatabaseNameToTest() { + return databaseNameToTest; + } + + public void setDatabaseNameToTest(String databaseNameToTest) { + this.databaseNameToTest = databaseNameToTest; + } } diff -r 189b1260b942 -r bbd335b5410c java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Mon Dec 16 15:15:32 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java Mon Dec 16 15:29:02 2013 +0100 @@ -114,6 +114,13 @@ case Tokens.INFO_VERSION: options.addShowInfo(CLIOptions.INFO_TYPE.VERSION); break; + case Tokens.INFO_DATABASES: + options.addShowInfo(CLIOptions.INFO_TYPE.DATABASES); + break; + case Tokens.INFO_CONNECTION: + options.addShowInfo(CLIOptions.INFO_TYPE.CONNECTION); + options.setDatabaseNameToTest(fetchNext(args, ++i)); + break; default: throw new CLIParserException("Unknown option: " + arg); } @@ -145,6 +152,8 @@ public static final String INFO_LICENSE = "--license"; public static final String INFO_FORMATTERS = "--list-formatters"; public static final String INFO_TYPES = "--list-types"; + public static final String INFO_DATABASES = "--list-databases"; + public static final String INFO_CONNECTION = "--test-connection"; private Tokens() { } diff -r 189b1260b942 -r bbd335b5410c java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Mon Dec 16 15:15:32 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Mon Dec 16 15:29:02 2013 +0100 @@ -23,7 +23,7 @@ /** Show info */ if (!options.getShowInfo().isEmpty()) { InfoLister infoLister = new InfoLister(); - infoLister.showInfo(options.getShowInfo(), System.err); + infoLister.showInfo(options, System.err); } } catch (CLIParserException e) { diff -r 189b1260b942 -r bbd335b5410c java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java --- a/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java Mon Dec 16 15:15:32 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java Mon Dec 16 15:29:02 2013 +0100 @@ -10,7 +10,8 @@ */ public class InfoLister { - public void showInfo(EnumSet infoTypes, PrintStream out) { + public void showInfo(CLIOptions options, PrintStream out) { + EnumSet infoTypes = options.getShowInfo(); for (CLIOptions.INFO_TYPE infoType : infoTypes) { switch (infoType) { /** @@ -31,6 +32,12 @@ case VERSION: out.println("TODO: show version"); break; + case DATABASES: + out.println("TODO: list databases"); + break; + case CONNECTION: + out.println("TODO: test database connection: " + options.getDatabaseNameToTest()); + break; default: throw new IllegalArgumentException("Unsupported INFO_TYPE: " + infoType); }