database/formatter properties also as CLI options v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 01 Jan 2014 02:44:29 +0100
branchv_0
changeset 107 8189a4a28cd8
parent 106 e9c3583580c8
child 108 d06d90b28217
database/formatter properties also as CLI options
java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java
java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
java/sql-dk/src/info/globalcode/sql/dk/configuration/Properties.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Wed Jan 01 01:06:38 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Wed Jan 01 02:44:29 2014 +0100
@@ -18,6 +18,7 @@
 package info.globalcode.sql.dk;
 
 import info.globalcode.sql.dk.InfoLister.InfoType;
+import info.globalcode.sql.dk.configuration.Property;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -100,6 +101,12 @@
 				case Tokens.FORMATTER:
 					options.setFormatterName(fetchNext(args, ++i));
 					break;
+				case Tokens.DB_PROPERTY:
+					options.addDatabaseProperty(new Property(fetchNext(args, ++i), fetchNext(args, ++i)));
+					break;
+				case Tokens.FORMATTER_PROPERTY:
+					options.addFormatterProperty(new Property(fetchNext(args, ++i), fetchNext(args, ++i)));
+					break;
 				case Tokens.INFO_HELP:
 					options.addShowInfo(InfoType.HELP);
 					break;
@@ -141,6 +148,7 @@
 
 		// bash-completion:options:
 		public static final String DB = "--db"; // bash-completion:option // help: database name
+		public static final String DB_PROPERTY = "--db-property"; // bash-completion:option // help: name and value
 		public static final String SQL = "--sql"; // bash-completion:option // help: SQL query/command
 		public static final String BATCH = "--batch"; // bash-completion:option // help: batch mode (no argument)
 		public static final String DATA = "--data"; // bash-completion:option // help: list of ordinal parameters
@@ -149,6 +157,7 @@
 		public static final String NAME_SUFFIX = "--name-suffix"; // bash-completion:option // help: parameter name suffix – regular expression
 		public static final String TYPES = "--types"; // bash-completion:option // help: comma separated list of parameter types
 		public static final String FORMATTER = "--formatter"; // bash-completion:option // help: name of the output formatter
+		public static final String FORMATTER_PROPERTY = "--formatter-property"; // bash-completion:option // help: name and value
 		public static final String INFO_HELP = "--help"; // bash-completion:option // help: print this help
 		public static final String INFO_VERSION = "--version"; // bash-completion:option // help: print version info
 		public static final String INFO_LICENSE = "--license"; // bash-completion:option // help: print license
--- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Wed Jan 01 01:06:38 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Wed Jan 01 02:44:29 2014 +0100
@@ -20,6 +20,7 @@
 import info.globalcode.sql.dk.batch.Batch;
 import info.globalcode.sql.dk.configuration.DatabaseDefinition;
 import info.globalcode.sql.dk.configuration.Properties;
+import info.globalcode.sql.dk.configuration.Property;
 import info.globalcode.sql.dk.formatting.ColumnsHeader;
 import info.globalcode.sql.dk.formatting.Formatter;
 import java.sql.Connection;
@@ -46,10 +47,12 @@
 		this.databaseDefinition = databaseDefinition;
 		this.properties = properties;
 
-		properties.setDefaults(databaseDefinition.getProperties());
+		Properties credentials = new Properties();
+		credentials.add(new Property("user", databaseDefinition.getUserName()));
+		credentials.add(new Property("password", databaseDefinition.getPassword()));
+		credentials.setDefaults(databaseDefinition.getProperties());
+		properties.setDefaults(credentials);
 		java.util.Properties javaProperties = properties.getJavaProperties();
-		javaProperties.setProperty("user", databaseDefinition.getUserName());
-		javaProperties.setProperty("password", databaseDefinition.getPassword());
 
 		connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties);
 	}
--- a/java/sql-dk/src/info/globalcode/sql/dk/configuration/Properties.java	Wed Jan 01 01:06:38 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/configuration/Properties.java	Wed Jan 01 02:44:29 2014 +0100
@@ -94,14 +94,14 @@
 	 */
 	public java.util.Properties getJavaProperties() {
 		java.util.Properties javaProperties = new java.util.Properties();
-		if (defaults != null) {
-			duplicateTo(javaProperties);
-		}
 		duplicateTo(javaProperties);
 		return javaProperties;
 	}
 
 	private void duplicateTo(java.util.Properties javaProperties) {
+		if (defaults != null) {
+			defaults.duplicateTo(javaProperties);
+		}
 		for (Property p : this) {
 			javaProperties.setProperty(p.getName(), p.getValue());
 		}