java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java
branchv_0
changeset 52 e2ba2af0ef40
parent 49 b4c74461d0f9
child 62 7a88ac6ba40c
--- a/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Tue Dec 24 11:54:58 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIParser.java	Tue Dec 24 12:05:05 2013 +0100
@@ -85,29 +85,29 @@
 				case Tokens.DATA: // --data is the last option
 					for (i++; i < args.length; i++) {
 						arg = args[i];
-
-						if (arg.startsWith(options.getNamePrefix()) && arg.endsWith(options.getNameSuffix())) { // Named parameters:
-							String paramName = arg.substring(options.getNamePrefix().length(), arg.length() - options.getNameSuffix().length());
-							String paramValue = fetchNext(args, ++i);
-							options.addNamedParameter(new NamedParameter(paramName, paramValue, namedTypes.get(paramName)));
-						} else { // Numbered parameters:
-							Parameter parameter;
-							if (numberedTypes.isEmpty()) {
-								parameter = new Parameter(arg, null);
-							} else {
-								int paramIndex = options.getNumberedParameters().size();
-								int paramType;
-								try {
-									paramType = numberedTypes.get(paramIndex);
-								} catch (IndexOutOfBoundsException e) {
-									throw new CLIParserException("Missing type for parameter #" + paramIndex, e);
-								} catch (NullPointerException e) {
-									throw new CLIParserException("Invalid type definition for parameter #" + paramIndex, e);
-								}
-								parameter = new Parameter(arg, paramType);
+						Parameter parameter;
+						if (numberedTypes.isEmpty()) {
+							parameter = new Parameter(arg, null);
+						} else {
+							int paramIndex = options.getNumberedParameters().size();
+							int paramType;
+							try {
+								paramType = numberedTypes.get(paramIndex);
+							} catch (IndexOutOfBoundsException e) {
+								throw new CLIParserException("Missing type for parameter #" + paramIndex, e);
+							} catch (NullPointerException e) {
+								throw new CLIParserException("Invalid type definition for parameter #" + paramIndex, e);
 							}
-							options.addNumberedParameter(parameter);
+							parameter = new Parameter(arg, paramType);
 						}
+						options.addNumberedParameter(parameter);
+					}
+					break;
+				case Tokens.DATA_NAMED:
+					for (i++; i < args.length; i++) {
+						String paramName = args[i];
+						String paramValue = fetchNext(args, ++i);
+						options.addNamedParameter(new NamedParameter(paramName, paramValue, namedTypes.get(paramName)));
 					}
 					break;
 				case Tokens.FORMATTER:
@@ -156,6 +156,7 @@
 		public static final String SQL = "--sql";
 		public static final String BATCH = "--batch";
 		public static final String DATA = "--data";
+		public static final String DATA_NAMED = "--data-named";
 		public static final String NAME_PREFIX = "--name-prefix";
 		public static final String NAME_SUFFIX = "--name-suffix";
 		public static final String TYPES = "--types";