--- 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";