named parameters: suffix (default is empty) v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Mon, 23 Dec 2013 20:15:23 +0100
branchv_0
changeset 44 67581ec4396e
parent 43 2813d3409afd
child 45 ce33736066b1
named parameters: suffix (default is empty)
java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java
java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java	Mon Dec 23 18:27:57 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIOptions.java	Mon Dec 23 20:15:23 2013 +0100
@@ -33,10 +33,12 @@
 public class CLIOptions {
 
 	public static final String DEFAULT_NAME_PREFIX = ":";
+	public static final String DEFAULT_NAME_SUFFIX = ":";
 	private String sql;
 	private String databaseName;
 	private String databaseNameToTest;
 	private String namePrefix = DEFAULT_NAME_PREFIX;
+	private String nameSuffix = DEFAULT_NAME_SUFFIX;
 	private String formatterName;
 	private boolean batch;
 
@@ -90,6 +92,9 @@
 			if (!equalz(namePrefix, DEFAULT_NAME_PREFIX)) {
 				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name prefix if just showing info."));
 			}
+			if (!equalz(nameSuffix, DEFAULT_NAME_SUFFIX)) {
+				e.addProblem(new InvalidOptionsException.OptionProblem("Do not specify name suffix 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."));
 			}
@@ -175,6 +180,14 @@
 		this.namePrefix = namePrefix;
 	}
 
+	public String getNameSuffix() {
+		return nameSuffix;
+	}
+
+	public void setNameSuffix(String nameSuffix) {
+		this.nameSuffix = nameSuffix;
+	}
+
 	public String getFormatterName() {
 		return formatterName;
 	}
--- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Mon Dec 23 18:27:57 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Mon Dec 23 20:15:23 2013 +0100
@@ -70,6 +70,9 @@
 				case Tokens.NAME_PREFIX:
 					options.setNamePrefix(fetchNext(args, ++i));
 					break;
+				case Tokens.NAME_SUFFIX:
+					options.setNameSuffix(fetchNext(args, ++i));
+					break;
 				case Tokens.DB:
 					options.setDatabaseName(fetchNext(args, ++i));
 					break;
@@ -83,7 +86,7 @@
 					for (i++; i < args.length; i++) {
 						arg = args[i];
 
-						if (arg.startsWith(options.getNamePrefix())) { // Named parameters:
+						if (arg.startsWith(options.getNamePrefix()) && arg.endsWith(options.getNameSuffix())) { // Named parameters:
 							String paramName = arg.substring(options.getNamePrefix().length());
 							String paramValue = fetchNext(args, ++i);
 							options.addNamedParameter(new NamedParameter(paramName, paramValue, namedTypes.get(paramName)));
@@ -154,6 +157,7 @@
 		public static final String BATCH = "--batch";
 		public static final String DATA = "--data";
 		public static final String NAME_PREFIX = "--name-prefix";
+		public static final String NAME_SUFFIX = "--name-suffix";
 		public static final String TYPES = "--types";
 		public static final String FORMATTER = "--formatter";
 		public static final String INFO_HELP = "--help";